【问题标题】:Disable windows authentication on single location在单个位置禁用 Windows 身份验证
【发布时间】:2011-07-10 12:04:03
【问题描述】:

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

我已经尝试过Disable authentication on subfolder(s) of an ASP.NET app using windows authentication 的内容。我已经这样做了:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

...

  <location path="Tests/QService.asmx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

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

有没有办法完全禁用该单个位置的 Windows 身份验证,这样 IIS 就不会尝试建立 Windows 身份验证?

【问题讨论】:

  • 我猜这是您在 IIS 中的虚拟目录上的设置。您使用的是哪个版本的 IIS?虚拟目录上启用了哪些身份验证设置?
  • IIS 7.5。我启用了匿名身份验证和 Windows 身份验证。
  • @tster @richm - 答案仅用于回答问题。它们不是供其他用户用来为自己的目的获取更多信息或通过提出另一个问题来解决类似问题的。 Stack Overflow不是论坛。也不允许通过对所述答案的编辑来回复“问题即答案”。只是让你知道。谢谢。
  • @Kev,你到底在说什么?您是否删除了一些cmets或其他东西?老实说,我不知道Replying to a "question-as-an-answer" with an edit to said answer 是什么意思。这是我的问题,我假设我所做的所有 cmets 和编辑都是为了使问题更清楚或提供我遗漏的更多细节。
  • @tster - Rich M 的回答(现已删除)说 “对不起..这不是“答案”。我看不出如何发表“评论”你解决过这个问题吗?我遇到了同样的问题。 - 你编辑了这个答案并发布了一个以 Edit from OP: Try this in your global.asax 开头的回复。这是不允许的.

标签: asp.net iis iis-7.5


【解决方案1】:

您需要在该单个位置的虚拟目录上禁用 Windows 身份验证。那么你不应该受到挑战。

【讨论】:

  • 这可行,但我不想修改我发布到的每个 IIS 实例的配置。我宁愿有一个 web.config 或代码解决方案。
猜你喜欢
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 2023-03-12
  • 2023-03-22
相关资源
最近更新 更多