我目前正在开发一个ASP.NET应用程序,我希望得到用户名和用户名。当前用户/请求的工作站
我想使用NTLM和Authorization
以及WWW-Authenticate: NTLM
HTTP-Headers。
我在Firefox 4中启用了这些设置:
network.negotiate-auth.trusted-uris = http://localhost
network.negotiate-auth.delegation-uris = http://localhost
network.automatic-ntlm-auth.trusted-uris = http://localhost
network.ntlm.send-lm-response = true
但我没有在Firebug或我的应用中获得授权标题(使用Request.Headers
)。
我也试过IE 9,但它也没有发送它。
我在这里错过了什么吗?
我认为一旦我为可信任的uris启用它们,它们就会自动发送每个请求,并且它们也会在IE中自动发送,至少在内部网中。
ASP应用程序使用表单身份验证,它应该保持这种方式作为后备。
答案 0 :(得分:2)
浏览器只有在收到401错误且相应的WWW-Authenticate
标题(NTLM和/或Negoriate)时才会发送NTLM / Negotiate标头。然后浏览器默默地再发一个请求,其中包含您正在寻找的标题:
NTLM
,您将被要求登录/密码。然后,如果浏览器再次收到401错误,则再次登录/ pwd提示窗口弹出窗口。这将重复,直到正确的凭据或按下取消。来自第二个的每个请求,应用程序将获得身份验证标头。Negotiate
,只有在浏览器无法授权您时才会要求您登录/ pwd。其余部分与NTLM相同。在任何其他请求中,不会发送这些标头。以及启用匿名身份验证和/或禁用所请求资源的Windows 1时。
答案 1 :(得分:0)
如果您在IIS中启用了匿名身份验证,则默认情况下将使用该身份验证。要使用NTLM,您必须禁用匿名身份验证。