【问题标题】:Access Denied Error When using Windows Authentication Mode for WebServices对 Web 服务使用 Windows 身份验证模式时出现访问被拒绝错误
【发布时间】:2009-07-13 11:25:19
【问题描述】:

我有一个调用我的 WebService 的 Windows 应用程序。我正在为我的 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 身份验证模式 处于打开状态。

有人可以解释一下吗?

【问题讨论】:

  • 您指的是 ASMX Web 服务吗?您使用的是什么版本的 .NET?

标签: c# .net web-services security


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    例如类似:

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

    【讨论】:

    • 只是添加到这个。确保调用 Web 服务的应用程序或站点也使用 Windows 身份验证。如果调用站点或应用程序未使用 Windows 身份验证,则服务将仅以 ASPNET 用户或 NT_SERVICE 身份接收身份验证票
    【解决方案3】:

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

    而且,一旦您打开匿名访问,听起来您正在访问网络服务。如果您授予 IUSR 对数据库的访问权限,它可能会起作用。如果是这样,那么传递凭据似乎会出现问题。

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 2018-08-18
      • 2016-02-19
      • 2016-03-15
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多