C# 如何为基本身份验证配置Web Api 2和IIS?

C# 如何为基本身份验证配置Web Api 2和IIS?,c#,.net,iis,asp.net-web-api,C#,.net,Iis,Asp.net Web Api,场景 我用VS2012 C#制作了一个Web Api 2.2 RESTful服务 我正在使用自定义检查用户/通行证的基本身份验证(工作正常) 某些方法具有[AllowAnonymous]属性 有几种方法正在使用[Authorize(Roles=“myRol”)] 在本地工作中也是如此(读取用户并传递,与数据库检查,必须时拒绝或允许,应该时允许匿名,等等) 问题 当我第一次在DEV环境中部署服务时,我无法登录: 具有异名返回的方法200 具有基本安全性的方法返回401 数据(请询问或评

场景

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

问题

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

  • 具有异名返回的方法
    200
  • 具有基本安全性的方法返回
    401

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

这是我的web.config:

<system.webServer>
    <modules>
  <add name="BasicAuthHttpModule" type="WebHostBasicAuth.Modules.BasicAuthHttpModule, myAssemblyName" />
</modules>
我的回答是:

状态
401未经授权

数据
{“消息”:“此请求的授权已被拒绝。”}

标题

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
这是我的IIS配置(如果我在基本身份验证上设置“”,IIS会要求我提供我没有的凭据和/或凭据无效):


问题:

这个配置好吗?我错过了什么?
我怎样才能看到一个日志或者一些关于这个内部错误的东西


提前感谢。

看来您的授权码无法与数据库连接


注释掉连接到DB的代码并返回true,不管它是否允许您通过。使用消去法来缩小问题的范围。您需要更新数据库连接字符串(web.config)等,以与开发环境相匹配。如果您没有相应地进行调整,您就不能期望在本地工作的东西在另一个环境中工作。希望有帮助

您是否已将数据库添加到开发环境中?当您使用提供的身份验证启动项目时,VS会创建一个隐藏的小型数据库。您需要将数据库推送到开发服务器。@AntoineLev有一个自定义身份验证,使用my custom user/rol Model谢谢。这是关于DAS的升级问题。DAS返回401,所以你就在附近。
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