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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM