自托管 OWIN .NET 4.5 Web API 2 不适用于 Windows 身份验证和 https

Self-hosted OWIN .NET 4.5 Web API 2 does not work with Windows authentication and https

我正在尝试让 Web API 2 使用 Windows 身份验证和 SSL。看起来它可以与其中之一一起使用,但是当我同时启用 Windows 身份验证和 SSL 时,我不断从服务器收到 401 响应。

这就是我们启用 Windows 身份验证的方式:

HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"];
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;

当 运行 只是 HTTP(没有 HTTPS)时,Windows 身份验证似乎有效。我看到 401 个响应,然后是 200 个响应。

我也在尝试让它在我的本地机器上使用 HTTPS。

我完成了以下步骤来启用 HTTPS:

正在启动服务:

var startOptions = new StartOptions();
startOptions.Urls.Add(baseUrl); // baseUrl is "https://+:10001/"
_webApplication = WebApp.Start<Startup>(startOptions);

如果我禁用 Windows 身份验证(注释掉上面带有 HttpListener 的两行),我可以使用 HTTPS 协议访问该服务。浏览器识别证书。

当我启用 Windows 身份验证时,我不断收到 401 响应(在 Fiddler 中我可以看到一个请求最多 6 401 响应)。浏览器不断提示我登录,但在使用 401 代码尝试多次后失败。

我一直在寻找面临类似问题的人。 This post 看起来很有希望。不过笔者似乎对OWIN的.NET 4.5版本没有任何问题。

有谁能指点一下吗?谢谢!

我们的问题是身份验证而不是 SSL。

  • 使用 AuthenticationSchemes.Ntlm 帮助
  • 另一个问题是在组织内正确注册服务器名称,以便客户端(开发人员的机器)可以访问它