在经典模式下使用IIS7.5上的ASP.Net Web服务进行基本身份验证

时间:2011-11-02 02:46:22

标签: asp.net web-services iis-7.5 basic-authentication

我已经使用.Net 4实现了基本身份验证的Web服务。为了实现基本身份验证,我实现了HttpModule。当我通过Internet Explorer调用我的Web服务时,它会提示输入用户名密码,我输入有效的用户名/密码,它完全正常。

然而,当我在Dev Environment上部署我的Web服务并在Internet Explorer中调用我的服务时。这给了我用户提示;我输入有效的用户名/密码,但它一直提示我输入用户名/密码,最后三次尝试后我收到错误消息401.2 - 访问被拒绝。

我的身份验证设置为:

 Anonymous Access Enabled
 Basic Authentication Disabled
 Windows Authentication Disabled

在每次用户身份验证时,在我的HttpModule中,如果身份验证成功,我会记录。我可以在日志文件中看到,所有三次身份验证都成功了。但它仍然错误。 :(

顺便说一句如果我在集成模式下运行Web服务,它可以正常工作。不幸的是,我的要求是以经典模式运行Web服务。

环境详情: 操作系统:Windows Server 2008 R2, IIS:7.5经典模式

过去4天我坚持这个。请帮忙!

2 个答案:

答案 0 :(得分:1)

叫我疯了,但是你不必让Basic Authentication Enabled成功验证任何人吗?

答案 1 :(得分:0)

我猜你已经启用了身份模拟并且匿名启用了导致您的ASP.Net应用程序作为“IUSER_”帐户执行。 “IUSER_”帐户无权访问您尝试访问的特定资源(可能是API调用,文件,bla,bla)。

如果您确实已关闭身份模拟并且您已启用匿名,那么您的ASP.Net代码应作为应用程序池帐户运行。这意味着该帐户无权访问您尝试访问的特定资源(bla,bla,bla)。

Here is an old skool MSDN article that discusses IIS and ASP.Net security。就像我提到的那样,它很老,但概念仍然是真的。