我正在使用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."
}
有什么想法吗?
答案 0 :(得分:2)
您在创建身份时是否添加了角色声明?
userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));