web service/api 支持基本、匿名和 windows 身份验证

web service/api supporting basic, anonymous and windows authentication

我们有多个 Web 服务可以访问一些大型数据提取。它们被实现为 http 处理程序,因此我们可以将结果直接流式传输到响应流中。我们已经在单个端点上进行了匿名和 HTTP 基本身份验证。我们现在想添加 Windows 身份验证,以便内部用户可以访问他们可以从内部网络应用程序获得的所有相同数据。

但是,如果我在 IIS 的配置中禁用匿名身份验证,我只能使 Windows 身份验证工作。显然,这意味着对此端点的匿名请求停止工作。我没有测试 HTTP Basic,但我猜他们也会停止工作。

我知道我们可以创建一个新端点,仅用于 Windows 经过身份验证的请求。但是,有没有办法让它与单个端点一起工作,就像我们已经使用的匿名和基本身份验证一样?

由于启用了匿名,因此用户无法使用其网络浏览器发出经过身份验证的请求,但我们可以接受此限制。我尝试创建一个 HTML 页面来发出 XHR 请求并将 withCredentials 设置为 true,但是当 IIS 中禁用匿名身份验证时,Web 服务只能看到用户名。我还创建了一个控制台应用程序,它试图以不同的方式强制使用网络凭据。但同样,当匿名请求被禁用时,Web 服务只能看到用户名。

有谁知道是否可以在单个 URL 上实现匿名和 Windows 身份验证?

无法在同一端点同时启用 WindowsAuthentication 和匿名身份验证。 您将必须创建不同的 url