我有一个内部系统,其中有带有用户名和密码的登录表单。
但最近我需要获取有关尝试登录的用户的更多信息(例如,在登录尝试失败的情况下)。
由于这是一个内部系统,我考虑使用 Windows 身份验证来获取尝试登录的 AD 用户。但是,$_SERVER['AUTH_USER']
即使启用了 Windows 身份验证,它也会返回一个空字符串。只有当我禁用匿名身份验证时,它才会开始显示用户(因此似乎同时启用两者并不能获取 Windows 凭据)
我仍然希望用户在登录表单中输入凭据,但我也想知道当前正在尝试登录的实际 Windows(AD)用户。
完全禁用匿名身份验证似乎可行,而且我不需要它,但现在我有点困惑,尽管我认为我明白了:由于所有用户都已在 Windows 计算机上工作,因此他们的凭据已通过,这就是 Windows 身份验证有效的原因。但现在我想知道完全禁用匿名身份验证是否会在某些情况下导致错误,我不应该完全禁用它?或者也许有一种方法可以同时启用匿名身份验证和 Windows 身份验证并仍然获取值$_SERVER['AUTH_USER']
(而不是空白字符串)?
但是,IIS 如何验证连接到网站的 Windows 用户?因为如果我仅使用我的用户查看网站,则不会输入任何密码或凭据
对我来说很奇怪,我使用 Windows 身份验证,但我保留了登录表单,这似乎与 Windows 身份验证的目的相矛盾。或者这是不正确的,现在我基本上有 2 层身份验证?我只是不知道如果代码中没有处理该问题的内容,Windows 身份验证如何工作 - 我的意思是它如何“知道”用户可以查看网站?