使用“主机头值”通过 IE 进行用户身份验证

使用“主机头值”通过 IE 进行用户身份验证

我正在尝试在 IIS 6 中建立多个网站。

我有一个位于默认网站下的正常工作的虚拟站点,但是如果我在 IIS 中创建一个新网站并为其分配一个主机标头值,让它指向与前面提到的站点完全相同的文件结构,最后为该站点分配 Windows 集成安全性,我仍然无法使用 Internet Explorer 6 或 8 登录到新站点,但 Firefox 3.5 可以正常工作。

如果我访问本地主机网站,我会在网络日志中看到这些条目

2009-11-19 09:15:59 W3SVC1 127.0.0.1 GET /client/ - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 2 2148074254
2009-11-19 09:15:59 W3SVC1 127.0.0.1 GET /client/ - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 1 0
2009-11-19 09:15:59 W3SVC1 127.0.0.1 GET /client/Default.asp - 80 xxx\Administrator 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 200 0 0

但是,如果我通过主机标头值站点访问,系统会提示我登录,但登录失败,并且还会显示401 1 2148074252成功时不存在的错误。这可能是问题吗?

登录前屏幕:

2009-11-19 09:15:59 W3SVC1793297778 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 2 2148074254
2009-11-19 09:15:59 W3SVC1793297778 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 1 2148074252
2009-11-19 09:15:59 W3SVC1793297778 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 1 0

登录后屏幕(请注意,尚未提交 win 凭证):

2009-11-19 09:15:59 W3SVC1793297778 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 1 0
2009-11-19 09:15:59 W3SVC1793297778 127.0.0.1 GET / - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+2.0.50727) 401 1 2148074252

Firefox 将尝试使用匿名访问并提示登录,提交 Windows 凭据后一切正常。

Internet Explorer 为何如此顽固地拒绝向“主机标头值”网站提交凭据?该网站位于本地 Intranet 区域并且该区域的登录已被勾选。

没有 NIC 组合,没有防火墙,什么都没有。我一无所知!

答案1

该错误表明 HTTP 401(未授权)响应。因此,IE 肯定提交了凭据,是服务器拒绝了它们。

我猜 Firefox 之所以成功是因为它使用的是基本身份验证,而 IE 使用的是 NTLM 身份验证。请尝试禁用“主机头值”站点的所有身份验证类型(基本身份验证除外)。

相关内容