我试图让Web API 2使用Windows身份验证和SSL。它看起来可以与其中一个或另一个协同工作,但是当我同时启用Windows身份验证和SSL时,我始终从服务器获取401个响应。自托管的OWIN .NET 4.5 Web API 2不支持Windows身份验证和https
这就是我们如何启用Windows身份验证:
HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"];
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;
当只有HTTP(HTTPS无)上运行,Windows身份验证似乎工作。我看到401响应,然后是200响应。
我也试图让它在我的本地机器上使用HTTPS。
我通过以下步骤去启用HTTPS:
- 添加映射到服务器的名字在我的hosts文件
- 安装了证书(与this post帮助)
- 保留一个网址(
https://+:10001/
) - 然保留URL下的服务
圣arting服务:
var startOptions = new StartOptions();
startOptions.Urls.Add(baseUrl); // baseUrl is "https://+:10001/"
_webApplication = WebApp.Start<Startup>(startOptions);
如果我禁用Windows认证(注释出2行以上HttpListener
),我可以使用HTTPS协议访问该服务。浏览器识别证书。
当我启用Windows身份验证时,我总是收到401个响应(在Fiddler中,我可以看到一个请求最多可以有6 401个响应)。浏览器不断提示我登录,并且在用401代码进行多次尝试后失败。
我一直在试图找到面临类似问题的人。 This post看起来很有希望。但是,作者似乎对OWIN的.NET 4.5版本没有任何问题。
任何人都可以请指教?谢谢!