我正在开发带有Identity 2.0承载身份验证的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"));