在单个位置禁用Windows身份验证

tst*_*ter 7 asp.net iis iis-7.5

我有一个Web应用程序,我想提供匿名访问其中的几个Web服务,以便我们可以从计算机访问Web服务,而无需在我们的网络上登录Windows.

我试过这里的东西使用Windows身份验证禁用ASP.NET应用程序的子文件夹上的身份验证.我这样做了:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

...

  <location path="Tests/QService.asmx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

这两者都"起作用",因为它们允许匿名用户访问Web服务.但是,似乎IIS仍然发送授权挑战,因为当我从浏览器访问服务时,我得到一个框来输入我的用户名和密码.如果我点击取消,我会匿名访问该页面.但是,我们的一些客户端不能很好地处理这个问题,因为401返回代码而失败.

有没有办法在该单一位置完全禁用Windows身份验证,以便IIS不会尝试建立Windows身份验证?

Rus*_*ure 5

您需要在虚拟目录上为该单个位置禁用Windows身份验证.那你不应该被挑战.