Authentication IIS中托管的Web Api-401未经授权的错误
我为intranet环境编写了WebAPI。与其他应用程序一样,为Windows身份验证配置了Web Api。但返回的错误是:Authentication IIS中托管的Web Api-401未经授权的错误,authentication,windows-authentication,asp.net-web-api,Authentication,Windows Authentication,Asp.net Web Api,我为intranet环境编写了WebAPI。与其他应用程序一样,为Windows身份验证配置了Web Api。但返回的错误是: 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
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
我怎样才能解决这个问题?这是fiddler捕捉到的: 中未选择任何身份验证协议(包括匿名) IIS。仅启用集成身份验证和客户端浏览器 使用了不支持集成身份验证的。集成 身份验证已启用,请求已通过代理发送 在身份验证标头到达Web之前更改了这些标头 服务器。Web服务器未配置为匿名访问和 未收到所需的授权标头。已收到 “配置/系统.Web服务器/授权”配置部分 可能会明确拒绝用户访问
我怀疑使用该服务的应用程序可能托管在同一台服务器上,并通过完全限定的域名进行引用。在这种情况下,问题可能是由环回检查引起的。为了进行测试,请尝试在不使用完全限定域名的情况下引用该服务,并查看其是否有效。如果是,请使用以下步骤指定本地计算机上的主机名 方法1:指定主机名(如果需要NTLM身份验证,首选方法)() 要指定映射到环回地址并可连接到计算机上网站的主机名,请执行以下步骤:
类似的问题-您的控制器是否支持授权?不,它不支持授权属性。请尝试在IIS中检查站点上的身份验证设置。我不知道您的具体想法?我只为IIS上的web api应用程序启用了Windows身份验证。如何在web api控制器中捕获域用户名?您使用什么客户端来测试这个?小提琴手?