gpt4 book ai didi

web-services - 仅当 web svcs 客户端与 IIS 服务器位于同一台计算机上时,Windows 集成身份验证才会失败

转载 作者:行者123 更新时间:2023-12-04 04:06:40 26 4
gpt4 key购买 nike

我有一个在 IIS7 下运行的 Web 服务,它在一个设置了主机头的服务器上,以便它接收对 http://myserver1.mydomain.com 发出的请求。 .
我已将 Windows 集成身份验证设置为启用,并将其他所有内容(基本、匿名等)设置为禁用。

我正在使用 powershell 脚本测试 Web 服务,当我从我的工作站针对 http://myserver1.mydomain.com 运行它时,它运行良好。

但是,当我在 IIS 服务器本身上运行相同的脚本时,我收到了 401-Unauthorized 消息。

此外,我尝试在第二台服务器 myserver2.mydomain.com 上安装 Web 服务。我可以再次从我的工作站和 myserver1 调用我的测试脚本。

因此,似乎唯一的问题是当客户端与 Web 服务器本身位于同一框时 - 不知何故,Windows 凭据没有被传递或识别。

我尝试在 myserver1 上使用 IE 设置(选中和取消选中“启用 Windows 集成身份验证”,并将 URL 添加到本地站点)。这似乎没有效果。

当我查看 IIS 日志时,我看到 401 未授权行,但其他信息很少。

在使用 IE (v9) 进行测试时,我看到了基本相同的行为 - 在我的工作站上工作,但在 IE 在 IIS 服务器上运行时不工作。

最佳答案

几个小时后我找到了答案:

默认情况下,如果用于站点的主机头与本地主机名不匹配,则有一个称为 LoopbackCheck 的东西将拒绝 Windows 身份验证。仅当客户端在本地主机上时才会看到此行为。检查是为了击败可能的反射攻击。

更多细节在这里:

http://support.microsoft.com/kb/896861

kb 项目讨论了禁用环回检查的方法,但我最终只是从使用主机头切换到端口来区分 IIS 服务器上的不同站点。

感谢提供帮助的人。

关于web-services - 仅当 web svcs 客户端与 IIS 服务器位于同一台计算机上时,Windows 集成身份验证才会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5582086/

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