我有一个内部的PHP应用程序(只为使用域网络的员工)运行在IIS上的匿名身份验证.
用户登录应用程序的方式是通过登录表单(用户名和密码).
这就是为什么我禁用了Windows身份验证,只启用了匿名身份验证.
但是现在有一个能够保存失败的登录try 和失败的用户的请求.为此,我希望获得正在try 连接的实际Windows用户.
在我的一个其他应用程序中,我正在使用Windows身份验证,这样我就可以让Windows用户使用PHP$_SERVER['AUTH_USER'];
因此,我想在此应用程序上添加该功能,并启用了Windows身份验证.但是,当同时启用Windows身份验证和匿名身份验证时,$_SERVER['AUTH_USER'];
将返回空字符串.
然后,我禁用了匿名身份验证,瞧!它向我显示了Windows用户.而且,登录表单仍然有效,即用户仍然需要输入用户名和密码.
所以我搞糊涂了--Windows身份验证是如何工作的?它到底验证了什么?因为没有密码之类的东西,所以它只给了我Windows用户名.
我现在基本上有"两层"身份验证了吗?通过Windows身份验证的"服务器"级身份验证,以及"app"级身份验证(登录表单)?(但话又说回来,Windows身份验证到底做了什么?)
那么,我可以安全地禁用匿名身份验证吗?