zoukankan      html  css  js  c++  java
  • 权限控制:分配权限1

    在介绍分配方法之前,我们必须理解权限关系,这里面涉及到三个对象:用户,角色,权限,权限分配到角色,角色再分配到用户,当某个用户属于某个角色后,这个用户就具有了角色所包含的权限列表,比如现在有一个信息管理员角色,这个角色包含了信息删除权限,当张三这个用户具有信息管理员角色后,张三就具备了信息删除的权限。在某些特殊场景下,权限也可以直接分配到用户,也就是说可以直接把某些特定的权限,绕过角色,直接分配给用户。Microsoft.AspNetCore.Identity.EntityFrameworkCore框架中都提供了这样的支持。

    先把框架中主要的业务对象类介绍一下:

    IdentityUser:表示一个用户信息

    IdentityRole:表示一个角色信息

    IdentityRoleClaim<TKey>:表示角色具有的权限

    IdentityUserClaim<TKey>:表示用户具有的权限

    IdentityUserRole<TKey>:表示用户角色关系

    基本概念理解后,下面我们就来看一下如何进行权限分配。

    1,分配权限到角色:Microsoft.AspNetCore.Identity.EntityFrameworkCore中提供了RoleManager类,类中提供了把权限分配到角色的方法:

      Task<IdentityResult> AddClaimAsync(TRole role, Claim claim)

      第一个参数表示对应的角色对象,第二个参数表示一个权限信息

    2,分配权限到用户:Microsoft.AspNetCore.Identity.EntityFrameworkCore中提供了UserManager类,类中提供了把权限分配到用户的方法:

      Task<IdentityResult> AddClaimAsync(TUser user, Claim claim)

      第一个参数表示对应的用户对象,第二个参数表示一个权限信息

    3,分配用户到角色:用到的同样是UserManager类,使用的方法:

      AddToRoleAsync(TUser user, string role)

      第一个参数表示的是用户对象,第二个是角色的名称

    4,获取角色当前具有的权限列表:

     Task<IList<Claim>> RoleManager.GetClaimsAsync(TRole role)

    5,获取用户当前具有的权限列表:

     Task<IList<Claim>> UserManager.GetClaimsAsync(TUser user)

  • 相关阅读:
    webservice 使用
    不错的下载网站。
    nvarchar 删除 tab 空格
    easyui juery 使用中发现的问题
    jquery easyui 文档资料
    easyui 合并单元格
    extjs4 中汉字显示不好看存在的问题
    微软语音提示
    一个简单的页面跳转
    导出 sqlsever 到access
  • 原文地址:https://www.cnblogs.com/dog12345/p/6962083.html
Copyright © 2011-2022 走看看