【发布时间】:2009-02-09 02:21:28
【问题描述】:
我有一个在 Windows 2003 的 IIS 6.0 中运行的 Web 服务。它的身份验证模式是集成 Windows 安全性(禁用匿名),并且使用授权管理器和 XML 授权存储来完成授权。我的测试用户是域用户(实际上是管理员),具有授权角色的成员资格。
我正在(暂时)在 Web 服务器 (localhost) 上对此进行测试,并(暂时)使用 Internet Explorer 访问 Web 服务 (.asmx)。
我可以通过localhost成功打开web服务(wsdl)页面,像这样:
http://localhost:8080/MyService/MyService.asmx
使用此 url,集成 Windows 身份验证成功(静默),并且 AzMan 成功授权我访问该服务。服务器名称也是如此:
http://myserver:8080/MyService/MyService.asmx
现在我需要使用外部主机名 (www.mysite.no) 来访问服务(这是为了让 ssl 使用颁发给该站点名称的证书)。为此,我将主机名添加到我的 HOSTS 文件中,如下所示:
127.0.0.1 www.mysite.no
...然后在 IE 中输入:
http://www.mysite.no:8080/MyService/MyService.asmx
然后会发生授权失败。我得到了 IE/Windows 登录框并输入了正确的凭据三次。然后我得到一个 401.1:
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)
主机名如何影响通过 AzMan 的授权?
编辑:我有理由相信 AzMan 与此无关 - 似乎是身份验证失败。
我已经在另一台服务器上重现了这个问题。本质似乎是通过本地主机文件中的条目访问 localhost 以某种方式弄乱了浏览器和 IIS 之间的集成 windows 身份验证。
我已经解决了这个问题,现在只剩下我的好奇心......
【问题讨论】:
标签: asp.net web-services iis authorization azman