【问题标题】:Web Api hosted in IIS - 401 Unauthorized errorIIS 中托管的 Web Api - 401 未经授权的错误
【发布时间】:2014-04-18 23:30:02
【问题描述】:

我为 Intranet 环境编写了 Web Api。与其他应用程序一样,Web Api 配置为 Windows 身份验证。但是返回的错误是:

HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.0
WWW-Authenticate: NTLM
WWW-Authenticate: Negotiate
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Date: Thu, 13 Mar 2014 22:05:12 GMT
Content-Length: 6171
Proxy-Support: Session-Based-Authentication

我该如何解决这个问题?

【问题讨论】:

  • 您的控制器是否落后于授权?
  • 不,它不在授权属性后面。
  • 尝试在 IIS 中检查您网站上的身份验证设置。
  • 不知道你到底是怎么想的?我只为 IIS 上的 web api 应用程序启用了 Windows 身份验证。如何在 web api 控制器中捕获域用户名?
  • 你用什么客户端来测试这个?提琴手?

标签: authentication windows-authentication asp.net-web-api


【解决方案1】:

这就是提琴手抓到的东西:

未选择身份验证协议(包括匿名) IIS.Only 集成身份验证启用,并且客户端浏览器 使用了不支持集成身份验证的。集成 身份验证已启用,并且请求是通过代理发送的 在身份验证标头到达 Web 之前更改了它们 server.Web 服务器未配置为匿名访问和 未收到所需的授权标头。 “configuration/system.webServer/authorization”配置部分 可能是明确拒绝用户访问。

【讨论】:

    【解决方案2】:

    我怀疑使用该服务的应用程序可能托管在同一台服务器上,并通过完全限定的域名进行引用。在这种情况下,问题可能是由环回检查引起的。为了测试,请尝试在不使用完全限定域名的情况下引用该服务并查看它是否有效。如果是,请使用以下步骤指定本地计算机上的主机名。

    方法 1:指定主机名(如果需要 NTLM 身份验证,首选方法) (http://support.microsoft.com/kb/896861)

    要指定映射到环回地址并可以连接到您计算机上的网站的主机名,请执行以下步骤:

    1. 将 DisableStrictNameChecking 注册表项设置为 1。有关如何执行此操作的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:281308 在基于 Windows 2000 的计算机或 Windows 上连接到 SMB 共享基于 Server 2003 的计算机可能无法使用别名
    2. 单击开始,单击运行,键入 regedit,然后单击确定。
    3. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
    4. 右键单击 MSV1_0,指向新建,然后单击多字符串值。
    5. 键入 BackConnectionHostNames,然后按 Enter。
    6. 右键单击 BackConnectionHostNames,然后单击修改。
    7. 在“数值数据”框中,键入本地计算机上站点的一个或多个主机名,然后单击“确定”。
    8. 退出注册表编辑器,然后重新启动 IISAdmin 服务。

    http://blogs.4ward.it/impersonation-issues-401-error-mvc-and-web-api-4-5/

    类似问题 - 401 Unauthorized error web api mvc windows authentication

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多