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 

  • 相关阅读:
    解决方案solution
    Marshal类
    鼠标钩子WH_MOUSE_LL和WH_MOUSE的区别
    DllImport
    打包.py文件成.exe
    C++定义全部变量注意项
    类.cpp文件不识别类.h所定义的结构体问题
    C++判断文件是否存在
    博客专栏
    软件测试基础知识
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/15202712.html
Copyright © 2011-2022 走看看