【发布时间】:2016-11-18 10:49:46
【问题描述】:
我正在尝试让 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:
- 在我的 hosts 文件中添加了到服务器名称的映射
- 安装了证书(在this post的帮助下)
- 保留一个 URL (
https://+:10001/) - 在保留的 URL 下运行服务
启动服务:
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 看起来很有希望。但是,作者似乎对 .NET 4.5 版本的 OWIN 没有任何问题。
谁能给点建议?谢谢!
【问题讨论】:
标签: c# https asp.net-web-api2 owin