3

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

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

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

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

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

谢谢。

4

2 回答 2

2

问题可能与您的浏览器配置有关。默认情况下,浏览器不允许所有站点使用 NTLM。IE 只允许 Intranet 区域中的站点使用 NTLM 进行身份验证,现在看来Chrome 已经复制了这种行为。

因此,要让您的站点正常运行,请转到 Internet Explorer 中的 Internet 选项并将您的域添加到 Intranet 站点。

于 2013-06-07T00:27:56.030 回答
1

我的一位同事最近才设法解决了这个问题。这似乎是由于我们有一个本地 DNS 后缀造成的。后缀类似于abc.local,所以这里的所有机器都像http://hostname.abc.local.

这是一个问题,因为 Internet Explorer(Chrome 从中获取设置)不认为该网站是该Local Intranet区域的一部分,因此对其不够信任。

按照此图中的说明解决了问题:

在此处输入图像描述

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

于 2015-06-12T06:15:47.547 回答