我正在进行基于声明的身份验证,并且已经正常工作。现在我想添加角色授权。 我有用户角色声明(例如 "Admin")
当调用IsInRole()方法时,会检查当前用户是否拥有该角色。 在支持声明的应用程序中,角色由角色声明类型表示,应在令牌中可用。 角色声明类型使用以下URI表示:http://schemas.microsoft.com/ws/2008/06/identity/claims/role
//Include all claims
//claims is List<Claim> with all claims
var id = new ClaimsIdentity(claims, "Cookies");
Request.GetOwinContext().Authentication.SignIn(id);
如果我检查用户是否在角色中,将会得到false。虽然我拥有值为"Admin"的角色声明。
User.IsInRole("Admin");
还有,在我的API上授权属性将不起作用。
[Authorize (Roles = "Admin")]
我可能误解了如何使角色对用户可见的逻辑。仅在索赔清单中拥有角色可能是不够的?