【发布时间】:2011-12-19 23:45:26
【问题描述】:
我已经使用 .Net 4 实现了带有基本身份验证的 Web 服务。为了实现基本身份验证,我实现了 HttpModule。当我通过 Internet Explorer 调用我的 Web 服务时,它会提示输入用户名密码,我输入有效的用户名/密码,它工作得很好。
但是,当我在开发环境中部署 Web 服务并在 Internet Explorer 中调用我的服务时。这给了我用户提示;我输入了有效的用户名/密码,但它一直提示我用户名/密码,最终在尝试三次后我收到错误消息 401.2 - 访问被拒绝。
我的身份验证设置是:
Anonymous Access Enabled
Basic Authentication Disabled
Windows Authentication Disabled
每次用户通过身份验证时,我都会在我的 HttpModule 中记录身份验证是否成功。我可以在日志文件中看到,所有 3 次身份验证都成功。但它仍然出错。 :(
顺便说一句,如果我在集成模式下运行 Web 服务,它就可以正常工作。不幸的是,我的要求是以经典模式运行 Web 服务。
环境详情: 操作系统:Windows Server 2008 R2, IIS:7.5 经典模式
从过去 4 天开始,我一直被这个问题困扰。请帮忙!
【问题讨论】:
-
我在使用 Web 服务时遇到了类似的问题,但我的是在我自己的机器上。我能够调试 web 服务,发生的事情是基本身份验证标头在到达 web 服务 IHttpHandler.ProcessRequest 代码之前已从请求中删除。想必是 IIS 这样做的,但是我尝试了很多 IIS 设置更改都无济于事。
标签: asp.net web-services iis-7.5 basic-authentication