使用Windows身份验证模式进行Web服务时访问被拒绝错误

时间:2009-07-13 11:25:19

标签: c# .net web-services security

我有Windows应用程序,它调用我的一个WebService。我正在为我的WebService使用 Windows身份验证模式。 a)当我尝试访问Web服务时,它会抛出一个错误:

System.Net.WebException: The request failed with HTTP status 401: Access Denied.

我已经定了              

此外,我已关闭WS的匿名模式。仅选中集成Windows身份验证

b)当我关闭模仿时,我收到以下错误:

Login failed for user  "My Sys No\ASPNET". 

我认为我的登录ID凭据未通过,不确定为何仍然 Windows身份验证模式已启用。

有人会对此有所了解吗?

3 个答案:

答案 0 :(得分:0)

我相信当你在IIS中使用Windows身份验证时,该进程仍然像普通用户一样运行(例如Win 2k和XP上的ASPNET帐户),并且经过身份验证的用户安全令牌被添加到实际运行请求的线程中。

首先尝试启用匿名模式并确保您可以使其工作(即ASPNET可以访问所需的所有文件夹等)

答案 1 :(得分:0)

您是否设置了Web服务代理实例的Credentials属性?

e.g。类似的东西:

yourProxyObject.Credentials = System.Net.CredentialCache.DefaultCredentials;

答案 2 :(得分:0)

您是如何参考网络服务的?我有一个问题,如果我将其称为http://localhost/ ...而不是http://servername/ ...它不会将凭据传递给Web服务。

一旦打开匿名访问,听起来就像是在点击网络服务。如果您授予IUSR访问数据库的权限,它可能会起作用。如果是这样,那么传递凭证似乎是一个问题。