我刚刚构建了一个基本的 ASP MVC 网站,用于在我们的 Intranet 上进行部署。它希望用户与 IIS 框在同一个域中,如果您不是经过身份验证的 Windows 用户,则不应获得访问权限。
我刚刚将它部署到在 Server 2003 R2 SP2 上运行的 IIS6。Web 应用程序配置有它自己的池和它自己的池用户帐户。Web 应用程序的 IIS 目录安全选项仅设置为“Windows 集成安全”,并且 web.config 文件具有:
<authentication mode="Windows" />
从 IIS6 服务器本身的远程桌面会话中,如果通过http://localhost/myapp访问,IE7 浏览器窗口可以成功验证和导航 Web 应用程序。
但是,同样从服务器,如果通过服务器的名称(即http://myserver/myapp)访问,则 IE7 会显示一个凭据对话框,在尝试输入正确凭据三次后最终返回“HTTP 错误 401.1 - 未经授权:访问被拒绝,原因无效的凭据”。
当工作站浏览到 Web 应用程序 url(自然使用服务器的名称而不是“localhost”)时,也会出现同样的问题。
IIS6 服务器是我们拥有的唯一域的成员,并且没有启用防火墙。
有什么我没有正确配置的东西吗?
谢谢,
迄今为止,我尝试了 Matt Ryan、Graphain 和 Mike Dimmick 的建议,但没有成功。我刚刚使用 Server 2003 DC 和单独的 server 2003 IIS6 服务器构建了一个虚拟机测试实验室,我能够复制该问题。
当我第一次尝试通过非本地主机 URL(即http://iis/myapp)访问该站点时,我在 IIS6 服务器的系统事件日志中看到了一个条目。FQDN url 也失败了。
来源:Kerberos,事件 ID:4
kerberos 客户端从服务器 host/iis.test.local 收到 KRB_AP_ERR_MODIFIED 错误。使用的目标名称是 HTTP/iis.test.local。这表明用于加密kerberos服务票据的密码与目标服务器上的密码不同。通常,这是由于目标领域 (TEST.LOCAL) 和客户端领域中的计算机帐户名称相同。