gpt4 book ai didi

asp.net-mvc - ASP MVC Preview 5 和 IIS 6 Windows 身份验证

转载 作者:行者123 更新时间:2023-12-04 23:34:37 24 4
gpt4 key购买 nike

我刚刚构建了一个基本的 ASP MVC 网站,用于在我们的 Intranet 上进行部署。它希望用户与 IIS 框在同一个域中,如果您不是经过身份验证的 Windows 用户,则不应获得访问权限。

我刚刚将它部署到在 Server 2003 R2 SP2 上运行的 IIS6。 Web 应用程序配置有它自己的池和它自己的池用户帐户。 Web 应用程序的 IIS 目录安全选项仅设置为“Windows 集成安全”,并且 web.config 文件具有:

<authentication mode="Windows" />

从 IIS6 服务器本身的远程桌面 session ,如果通过 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 也失败了。

Source: Kerberos, Event ID: 4
The kerberos client received a KRB_AP_ERR_MODIFIED error from the server host/iis.test.local. The target name used was HTTP/iis.test.local. This indicates that the password used to encrypt the kerberos service ticket is different than that on the target server. Commonly, this is due to identically named machine accounts in the target realm (TEST.LOCAL), and the client realm.

最佳答案

经过广泛的谷歌搜索后,我设法在以下 MSDN 文章中找到了解决方案:
How To: Create a Service Account for an ASP.NET 2.0 Application

特别是其他注意事项部分,该部分描述了使用 Windows 支持工具中的 setspn 工具“为域帐户创建服务主体名称 (SPN)”:

setspn -A HTTP/myserver MYDOMAIN\MyPoolUser
setspn -A HTTP/myserver.fqdn.com MYDOMAIN\MyPoolUser



这解决了我在虚拟测试实验室和原始问题服务器上的问题。

文章中还有一个重要说明,即对自定义池用户使用 Windows 身份验证会将关联的 DNS 名称限制为仅由该池使用。也就是说,具有另一个身份的另一个池需要与不同的 DNS 名称相关联。

关于asp.net-mvc - ASP MVC Preview 5 和 IIS 6 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/119588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com