其实使用新的Identity以来一直有一个疑惑,之前的角色管理 在新的Identity中怎么管理的。[AspNetUserClaims] 在新的授权管理中又占什么位置
第一,根据角色授权,刚刚注册的用户无法访问这个Action,如果访问会跳转到登录页面,重新登录如下图
[Authorize(Roles = "HRManager,Finance")]
public ActionResult About()
{
ViewBag.Message = "Your application description page. tseedkdfkdk"; return View();
}
第二,如果我们给用户增加角色,然后重新登录后可以进入about页面。
insert AspNetRoles (Id,name) values ('1','HRManager')
insert AspNetRoles (Id,name) values ('2','Finance')
insert AspNetRoles (Id,name) values ('3','Administrator')
---给用户分派角色
insert [AspNetUserRoles] (UserId,RoleId)
select '876ac261-ee8d-42ac-8a32-d18c5ebd3d98',id from AspNetRoles
第三 我们使用Claim方式授权 ,重新注册一个用户没有任何角色,我们分派一个Claim,然后重新登录,也可以进入到about页面。
insert [AspNetUserClaims](UserId,ClaimType,ClaimValue)
values ('932205f3-65f6-469a-9e99-bb64f06e49c9','http://schemas.microsoft.com/ws/2008/06/identity/claims/role','HRManager')
结论:使用AspNetRoles 和Claim Role 授权 对[Authorize(Roles = "HRManager,Finance")] 有相同的效果。