【发布时间】:2016-05-06 23:34:57
【问题描述】:
我正在处理基于声明的身份验证,它运行良好。 现在我想添加角色授权。 我有用户的角色声明(例如“管理员”)
调用 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);
如果我检查用户是否在角色中,我会得到错误的。虽然我有“管理员”值的角色声明
User.IsInRole("Admin");
同时在我的 api 上授权 attrubute 将不起作用
[Authorize (Roles = "Admin")]
我可能对如何使角色对用户可见的逻辑不正确。仅在声明列表中包含角色可能还不够?
【问题讨论】:
标签: c# asp.net-mvc-5 authorization iis-8.5