如何配置Web Api 2和IIS进行基本身份验证?

Lea*_*dro 5 .net c# iis asp.net-web-api

脚本

  • 我用VS2012 C做了一个Web Api 2.2 RESTful服务#
  • 我正在使用基本身份验证与自定义检查用户/通行证(工作正常)
  • 有些方法有[AllowAnonymous]属性
  • 有几种方法正在使用 [Authorize(Roles = "myRol")]
  • 在本地工作中(读取用户并传递,使用数据库检查,拒绝或允许何时必须,允许匿名何时应该等)

问题

当我第一次在DEV环境中部署服务时,我无法登录:

  • AllowAnonymous返回的方法 200
  • 具有基本安全返回的方法 401

数据 (请询问或评论此更新)

这是我的web.config:

<system.webServer>
    <modules>
  <add name="BasicAuthHttpModule" type="WebHostBasicAuth.Modules.BasicAuthHttpModule, myAssemblyName" />
</modules>
Run Code Online (Sandbox Code Playgroud)

这是我的标题(它在本地工作):

Authorization: Basic YXR1cG9uZTp0ZXN0
Content-Type: application/json; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

这是我的回答:

状态:401 Unauthorized
数据:{"message":"Authorization has been denied for this request."}
标题:

Pragma: no-cache
Date: Fri, 24 Apr 2015 14:36:27 GMT
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache
Content-Length: 61
Expires: -1
Run Code Online (Sandbox Code Playgroud)

这是我的IIS配置(如果我"设置的"基本身份验证,则IIS问我要证件,我没有和/或它们是无效的):

IIS配置


题:

这个配置得好吗?我想念什么?
如何查看日志或其他内容错误?

提前致谢.

JOA*_*OAT 0

您的授权码似乎无法连接数据库。

注释掉连接到数据库并返回 true 的代码,看看它是否允许您通过。使用排除法来缩小问题所在。您需要更新数据库连接字符串(web.config)等以与开发环境匹配。如果你不进行相应的调整,你就不能指望在本地有效的方法在另一个环境中也能有效。希望有帮助。