支持基本、匿名和 Windows 身份验证的 Web 服务/API
Posted
技术标签:
【中文标题】支持基本、匿名和 Windows 身份验证的 Web 服务/API【英文标题】:web service/api supporting basic, anonymous and windows authentication 【发布时间】:2015-08-27 05:19:51 【问题描述】:我们有多个 Web 服务提供对一些大型数据提取的访问。它们被实现为 http 处理程序,因此我们可以将结果直接流式传输到响应流中。我们已经在单个端点上进行了匿名和 HTTP 基本身份验证。我们现在想添加 Windows 身份验证,以便内部用户可以访问他们可以从内部 Web 应用程序获得的所有相同数据。
但是,如果我在 IIS 的配置中禁用匿名身份验证,我只能让 Windows 身份验证工作。显然,这意味着对这个端点的匿名请求停止工作。我没有测试 HTTP Basic,但我猜它们也会停止工作。
我知道我们可以创建一个新端点,仅用于 Windows 身份验证请求。但是,有没有办法让它与单个端点一起工作,就像我们已经拥有的匿名和基本身份验证一样?
由于启用了匿名,用户无法使用他们的网络浏览器发出经过身份验证的请求,但我们可以接受这个限制。我尝试创建一个发出 XHR 请求并将 withCredentials 设置为 true 的 html 页面,但 Web 服务仅在 IIS 中禁用匿名身份验证时才能看到用户名。我还创建了一个控制台应用程序,它试图以不同的方式强制使用网络凭据。但同样,Web 服务仅在禁用匿名请求时才能看到用户名。
有谁知道是否可以在单个 URL 上实现匿名和 Windows 身份验证?
【问题讨论】:
【参考方案1】:不能在同一个端点同时启用 WindowsAuthentication 和 Anonymous 身份验证。 您将不得不创建不同的 url
【讨论】:
感谢您的回复。我希望有一种很难找到的方法来做到这一点,但没有其他人给出解决方案。以上是关于支持基本、匿名和 Windows 身份验证的 Web 服务/API的主要内容,如果未能解决你的问题,请参考以下文章
如何使用默认域在 Web.config 中启用基本身份验证和匿名身份验证?