NTML标头不会被Firefox或IE发送

时间:2011-06-09 10:23:03

标签: asp.net firefox firebug ntlm

我目前正在开发一个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应用程序使用表单身份验证,它应该保持这种方式作为后备。

2 个答案:

答案 0 :(得分:2)

浏览器只有在收到401错误且相应的WWW-Authenticate标题(NTLM和/或Negoriate)时才会发送NTLM / Negotiate标头。然后浏览器默默地再发一个请求,其中包含您正在寻找的标题:

  • 如果在此静默请求之前NTLM,您将被要求登录/密码。然后,如果浏览器再次收到401错误,则再次登录/ pwd提示窗口弹出窗口。这将重复,直到正确的凭据或按下取消。来自第二个的每个请求,应用程序将获得身份验证标头。
  • 如果是Negotiate,只有在浏览器无法授权您时才会要求您登录/ pwd。其余部分与NTLM相同。

在任何其他请求中,不会发送这些标头。以及启用匿名身份验证和/或禁用所请求资源的Windows 1时。

答案 1 :(得分:0)

如果您在IIS中启用了匿名身份验证,则默认情况下将使用该身份验证。要使用NTLM,您必须禁用匿名身份验证。