【发布时间】:2015-07-03 06:09:39
【问题描述】:
场景
- 我有一个使用 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>
这是我的标题(它在本地工作):
Authorization: Basic YXR1cG9uZTp0ZXN0
Content-Type: application/json; charset=utf-8
这是我的回应:
状态: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
这是我的 IIS 配置(如果我在“on”中设置基本身份验证,IIS 会要求我提供我没有和/或无效的凭据):
问题:
这个配置好了吗?我错过了什么?
如何查看日志或有关此内部错误的信息?
提前致谢。
【问题讨论】:
-
您是否将数据库添加到开发环境中? VS 在您使用提供的身份验证启动项目时创建一个隐藏的小型数据库。您需要将数据库推送到开发服务器。
-
@AntoineLev 我的自定义用户/角色模型有一个自定义身份验证
标签: c# .net iis asp.net-web-api