我有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身份验证模式已启用。
有人会对此有所了解吗?
答案 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访问数据库的权限,它可能会起作用。如果是这样,那么传递凭证似乎是一个问题。