我正在设置一个仅适用于某个Active Directory中的用户的Web服务。不幸的是,我遇到错误401-未经授权。
我尝试过的东西:
-
我最初尝试配置IIS和Web.config文件以授予Active Directory中的用户的访问权限,但我无法正常工作。
-
接下来,我决定退后一步,并配置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挑战之后自动自动(。