自托管 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:
- 在我的主机文件中添加了到服务器名称的映射
- 已安装证书(在 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 看起来很有希望。不过笔者似乎对OWIN的.NET 4.5版本没有任何问题。
有谁能指点一下吗?谢谢!
我们的问题是身份验证而不是 SSL。
- 使用
AuthenticationSchemes.Ntlm
帮助
- 另一个问题是在组织内正确注册服务器名称,以便客户端(开发人员的机器)可以访问它
我正在尝试让 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:
- 在我的主机文件中添加了到服务器名称的映射
- 已安装证书(在 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 看起来很有希望。不过笔者似乎对OWIN的.NET 4.5版本没有任何问题。
有谁能指点一下吗?谢谢!
我们的问题是身份验证而不是 SSL。
- 使用
AuthenticationSchemes.Ntlm
帮助 - 另一个问题是在组织内正确注册服务器名称,以便客户端(开发人员的机器)可以访问它