zoukankan      html  css  js  c++  java
  • ABP项目接口权限控制

    ABP项目接口权限控制

    1. 后台增加权限配置

     

      在 ABPProject.Application.Contracts 项目中 

     增加 权限组名称:ABPCatd

     路径:Permissions /  ABPProjectPermissions.cs

    namespace ABPProject.Permissions
    {
        public static class ABPProjectPermissions
        {
            public const string GroupName = "ABPProject";
            public const string GroupNameC = "ABPCatd";
    
            //Add your own permission names. Example:
            //public const string MyPermission1 = GroupName + ".MyPermission1";
        }
    }

    增加权限配置

    路径: Permissions  / ABPProjectPermissionDefinitionProvider.cs

            public override void Define(IPermissionDefinitionContext context)
            {
                var myGroup = context.AddGroup(ABPProjectPermissions.GroupName);
                //Define your own permissions here. Example:
                //myGroup.AddPermission(ABPProjectPermissions.MyPermission1, L("Permission:MyPermission1"));
    
                var myGroupC = context.AddGroup(ABPProjectPermissions.GroupNameC);
                myGroupC.AddPermission("category_Create", L("Permission:category_Create"));
            }

    启动项目后,访问 接口

    https://localhost:44325/api/permission-management/permissions?providerName=R

    providerName: R-角色权限,U-用户权限

    可查询到 权限相关信息

    上面接口返回的结果数据,可用做前端页面配置数据源。

    2. 路由配置

    前端 vue 项目中 修改路由配置,给路由增加权限配置

    此处只是写法举例:权限名称与后端定义的名称对应

    const tableRouter = {
      path: '/table',
      component: Layout,
      redirect: '/table/complex-table',
      name: 'Table',
      meta: {
        title: 'Table',
        icon: 'table'
      },
      permission:'AbpIdentity.Roles',
      children: [{
          path: 'dynamic-table',
          component: () => import('@/views/table/dynamic-table/index'),
          name: 'DynamicTable',
          meta: {
            title: 'dynamicTable'
          },
          permission: 'category_Create', 
       }

      ]
    }
    export
    default tableRouter

    3. 菜单配置

    前端 VUE 项目中 permission.js 里面 执行路由跳转时,会判断有权限的菜单 

    先调用接口,获取到用户拥有的权限 

    https://localhost:44325/api/abp/application-configuration

     获取到 auth.grantedPolicies

    传入 generateRoutes 接口中用于权限比限,拿到用户所拥有的菜单

    修改 generateRoutes 中的比较方法 : filterAsyncRoutes

    路径 src / store / modules / permission.js 

    此处省略

    4. 页面内容的权限判断,比如按钮、模块, 用v-if / v-show 

  • 相关阅读:
    链接服务器创建
    线性RAM地址非线性映射转换充分应用RAM地址空间TFT液晶驱动
    FPGA跨时钟域同步,亚稳态等
    Go常见的坑
    VSCode+PicGo+Gitee实现高效markdown图床
    友链
    linux 命令行使用codeql
    Linux 多进程服务配置 systemd
    列表中重复元素的个数
    起不出来题目了呜呜
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/15202712.html
Copyright © 2011-2022 走看看