【问题标题】:Self-hosted OWIN .NET 4.5 Web API 2 does not work with Windows authentication and https自托管 OWIN .NET 4.5 Web API 2 不适用于 Windows 身份验证和 https
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2015-11-11
      相关资源
      最近更新 更多