1.Framework.Core》Authorization》PermissionNames.cs 这里新增权限项

namespace Framework.Authorization
{public static class PermissionNames{public const string Pages_Tenants = "Pages.Tenants";public const string Pages_Users = "Pages.Users";public const string Pages_Roles = "Pages.Roles";/// <summary>/// 产品-浏览/// </summary>public const string Pages_Products = "Pages.Products";/// <summary>/// 产品-编辑/// </summary>public const string Pages_Products_Edit = "Pages.Products.Edit";/// <summary>/// 产品-删除/// </summary>public const string Pages_Products_Delete = "Pages.Products.Delete";}
}

2.Framework.Core》Authorization》FrameworkAuthorizationProvider.cs 这里创建权限,这样在页面中添加角色的时候才能显示出来

using Abp.Authorization;
using Abp.Localization;
using Abp.MultiTenancy;namespace Framework.Authorization
{public class FrameworkAuthorizationProvider : AuthorizationProvider{public override void SetPermissions(IPermissionDefinitionContext context){context.CreatePermission(PermissionNames.Pages_Users, L("Users"));context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);#region 创建权限var per = context.CreatePermission(PermissionNames.Pages_Products, L("Products"));per.CreateChildPermission(PermissionNames.Pages_Products_Edit, L("EditProducts"));per.CreateChildPermission(PermissionNames.Pages_Products_Delete, L("DeleteProducts"));#endregion}private static ILocalizableString L(string name){return new LocalizableString(name, FrameworkConsts.LocalizationSourceName);}}
}

3.其中 Products、EditProducts、DeleteProducts 需要配置本地语言包文件:Framework.Core》Localization》Source》Framework-zh-CN.xml 这是中文的。

        <!-- 自定义 --><text name="Roles" value="角色" /><text name="Products" value="商品" /><text name="EditProducts" value="编辑商品" /><text name="DeleteProducts" value="删除商品" />    

4.左侧菜单 Framework.Web》App_Start》FrameworkNavigationProvider.cs

requiresAuthentication: true 需要登录;requiredPermissionName: PermissionNames.Pages_Products 需要权限

注册菜单在:Framework.Web》App_Start》FrameworkWebModule.cs 的 public override void PreInitialize(){...}里

5.配置Action需要授权,在Action上面加上特性:[AbpAuthorize(PermissionNames.Pages_Products_Delete)]
或者在Action里使用 PermissionChecker,
PermissionChecker.IsGranted(PermissionNames.Pages_Products_Delete) 返回true或者false,
PermissionChecker.Authorize(PermissionNames.Pages_Products_Delete) 如果没有授权,会抛出异常。
AbpMvcAuthorize

哈哈哈哈,啊哈哈哈哈,我看到了成功的曙光!

参考:https://www.cnblogs.com/defzhu/p/4843292.html

https://www.cnblogs.com/kid1412/p/6006297.html

https://www.cnblogs.com/wendj/p/6812942.html

转载于:https://www.cnblogs.com/xsj1989/p/9887941.html

ABP框架 配置权限、本地语言文件、左侧菜单项相关推荐

  1. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

    在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...

  2. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)

    1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...

  3. 前台+后台 java下载服务器、本地图片、文件(下载tomcat配置的虚拟路径文件)可指定任意保存路径,SSM框架

    背景:一个系统中有web网站与APP两个客户端,两个客户端有分别的后台,共同部署在一个服务器上,APP有一个上传图片.文件的功能,网站端则可以查看.下载APP上传的图片,下载APP上传的文件. 问题: ...

  4. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展...

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...

  5. ABP 详解系列4:ABP框架的基础配置及依赖注入讲解

    ABP框架的基础配置及依赖注入讲解 这篇文章主要介绍了ABP框架的基础配置及依赖注入讲解,是ABP框架上手使用的基本,要的朋友可以参考下 配置ABP 配置是通过在自己模块的PreInitialize方 ...

  6. ABP框架使用拦截器动态配置租户过滤器

    前言 最近项目要求在ABP框架中根据TenantId是否为空来配置是否禁用租户过滤器.ABP自身给我我们禁用租户过滤器的两种方法官方文档 https://aspnetboilerplate.com/P ...

  7. c语言字符串路径打开本地文件,C语言文件路径中的”/“和“\“

    在不同系统的情况系   windows下是\,linux和unix下是/  但在win中没有本质区别. 但是由于   \   也是转义字符的起始字符,  所以, 路径中的   \   通常需要使用   ...

  8. ABP框架下文件下載

    ABP框架下添加DevExpress框架生成報表,記錄一下學習過程 方式1,原始方式大概思路,打開Controller的方法CreateInRecordReport創建一個本地臨時文件,返回文件名,再 ...

  9. 配置idea 的浏览器框架、Windows本地安装git,以及如何远程连接gitlab

    配置idea 的浏览器框架.Windows本地安装gitl,以及如何远程连接gitlab 一.配置idea的浏览器框架 1.1.先定位到当前项目 1.2.左上角的File栏-------------- ...

最新文章

  1. 王炸不断,半导体巨头们到底在打什么牌?
  2. Java线程同步机制synchronized关键字的理解
  3. MATLAB图形的修饰(选择图形窗口、线型点颜色、坐标轴、图形标注、栅格和图形叠加的设置)
  4. JVM源码阅读-Dalvik类的加载
  5. 【Tools】VMware虚拟机三种网络模式详解和操作
  6. HTML5应用 + Cordova = 平台相关的混合应用
  7. Java技术依然备受追捧,主要学习内容有哪些?
  8. 第二轮冲次会议第三次
  9. 数据库的基本概念(三大范式,数据)
  10. Mac OSX 下破解软件的一般方法及过程、 mark一下
  11. 无线网服务器拒绝连接,网络拒绝连接什么原因
  12. 量化开发必掌握的30个知识点【什么是分笔逐笔数据】?
  13. Method的invoke()方法的使用
  14. sql server 里面的主要数据文件和次要数据文件有什么区别呢
  15. 知乎9.7万人围观热帖:“同事被富婆包养了,我哪里不如他?”
  16. 华为手机配什么蓝牙耳机好?适合华为手机的蓝牙耳机推荐
  17. 华为,小米开关控制设置指南总自动弹出
  18. phpstorm 补丁方式 creak
  19. 2021-03-08的博客
  20. 《Improving speech recognition by revising gated recurrent units》

热门文章

  1. 720环物全景制作_拍摄360全景照片多少钱?全景图片用什么软件看?
  2. linux自动点击软件上的按钮有什么用,教会你Linux Shell自动交互的三种方法
  3. 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
  4. 使用Julia进行图像处理--图像分割
  5. python中字符串模块_Python字符串模块
  6. C++自增自减运算符简单记录
  7. 为何要进入互联网行业做产品经理?
  8. Java基础篇:方法重载
  9. UVA 12657 Boxes in a Line
  10. [鸟哥linux视频教程整理]03_03_bash特性详解续