MVC 4 / IIS 7.5 - 提示Windows身份验证凭据

时间:2013-06-07 00:22:21

标签: asp.net-mvc-4 iis-7.5 windows-authentication ntlm

我有一个使用Windows身份验证的MVC4应用程序。我的计算机(开发)和主机服务器都运行IIS 7.5,并且位于同一个域中。该应用程序拥有自己的应用程序池,该池使用NetworkService标识。该应用程序仅启用了Windows身份验证。

在开发过程中我没有任何安全性,我只是显示了用户的名字。这在我的本地IIS和服务器的IIS上,从具有多个用户的多台计算机上运行良好。

一旦我添加了AuthorizeAttribute,我就会开始在Chrome和IE中提示输入凭据。使用Fiddler我可以看到正在发送NTLM身份验证标头,但显然被忽略了。如果我继续输入我的凭据,我就可以访问。

当尝试远程和本地(远程桌面)查看站点时,本地和服务器都会发生这种情况。立即再次删除AuthorizeAttribute意味着我没有得到提示。

我做了很多搜索并尝试了几次远射但没有成功。我还应该尝试什么?

感谢。

2 个答案:

答案 0 :(得分:2)

问题可能在于您的浏览器配置。浏览器默认情况下不允许所有站点使用NTLM。 IE仅允许Intranet区域中的站点使用NTLM进行身份验证,而it seems Chrome目前已复制该行为。

因此,要使您的网站正常工作,请转到Internet Explorer中的“Internet选项”,并将您的域添加到Intranet网站。

答案 1 :(得分:1)

我的一位同事最近才设法解决了这个问题。它似乎是由我们有一个本地DNS后缀的事实引起的。后缀类似于abc.local,因此此处的所有计算机都可以像http://hostname.abc.local一样访问。

这是一个问题,因为Internet Explorer(Chrome正在进行其设置)并不认为该网站是Local Intranet区域的一部分,因此不够信任它。

在此图中的不完整之后修复了问题:

enter image description here

请注意,是否应勾选Require server verification (https:) for all sites in this zone可能会有所不同。