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