我正在尝试在 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 身份验证。请尝试禁用“主机头值”站点的所有身份验证类型(基本身份验证除外)。