Asp.net Authorization 学习

其实使用新的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")] 有相同的效果。

原文地址:https://www.cnblogs.com/hellohongfu/p/6744005.html