Web API承载令牌认证授权不起作用

时间:2014-09-24 11:48:37

标签: asp.net-mvc asp.net-web-api asp.net-mvc-5 asp.net-identity asp.net-identity-2

我正在使用Identity 2.0 Bearer身份验证开发ASP.NET Web API应用程序。我已经配置了承载认证并实现了SignIn方法,所以当我传递头时:

Authorization: Bearer uGjAWZA1nPc1AqPuKpAzPhb989SYbtGd...

它正常工作。我可以致电User.Identity.GetUserId()User.Identity.GetUserName()。我甚至可以检查用户是否在某个角色,它也很好。

什么不起作用,是[Authorize]属性。当我指定角色时,它会返回[Authorize(Roles = "Admin")]

{
    Message: "Authorization has been denied for this request."
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您在创建身份时是否添加了角色声明?

userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));