为什么我的Web服务在使用Windows身份验证时会返回错误401



我正在设置一个仅适用于某个Active Directory中的用户的Web服务。不幸的是,我遇到错误401-未经授权。

我尝试过的东西:

  1. 我最初尝试配置IIS和Web.config文件以授予Active Directory中的用户的访问权限,但我无法正常工作。

  2. 接下来,我决定退后一步,并配置IIS和Web.config文件,以授予对 able 用户的访问。令人惊讶的是,这也不起作用。

当我调用Web服务时会发生什么:

当我调用Web服务时,我立即收到错误消息" 401-未经授权:由于凭据无效,访问被拒绝。您无权使用所提供的凭据查看此目录或页面。"我没有弹出任何凭据,所以让我知道这是否是问题。

IIS中的相关设置:

  • 禁用匿名身份验证
  • 启用了Windows身份验证
  • 授权规则允许所有用户

-

这是我的web.config文件中的相关行:

<system.webServer>
...
    <security>
        <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="*" />
        </authorization>
    </security>
  </system.webServer>

您可以从我允许所有用户访问的代码中看到(用户="*"(,但这仍然给我401错误。

谢谢您的帮助。

您如何调用Web服务?

A 401实际上是Windows身份验证的正常第一步。此处描述了整个身份验证流:Windows身份验证HTTP请求流程中的IIS。

简而言之,它以401响应,并告诉您它接受Windows身份验证。然后,客户(通常是浏览器(通过适当的身份验证重新发出请求。浏览器将为您执行此操作。

由于您提到这是一项Web服务,因此我想您正在自己处理请求。因此,有关如何解决此问题的答案取决于您如何拨打Web服务。但是通常有一种方法可以专门告诉它发送Windows凭据(在第一次尝试或在401挑战之后自动自动(。

相关内容

  • 没有找到相关文章

最新更新