ABP框架 配置权限、本地语言文件、左侧菜单项
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
ABP框架 配置权限、本地语言文件、左侧菜单项的更多相关文章
- ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理
在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...
- 在Winform界面菜单中实现动态增加【最近使用的文件】菜单项
在我们一些和文件处理打交道的系统中,我们往往需要记录下最近使用的文件,这样方便用户快速打开之前浏览或者编辑过的文件,这种在很多软件上很常见,本文主要介绍在Winform界面菜单中实现[最近使用的文件] ...
- 基于ABP框架的权限设置
需求:在界面展示中,"定向包管理","竞价管理","竞拍管理","发布定向资源","添加竞价资源", ...
- [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序
本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...
- abp框架Excel导出——基于vue
abp框架Excel导出--基于vue 目录 abp框架Excel导出--基于vue 1.技术栈 1.1 前端采用vue,官方提供 1.2 后台是abp--aspnetboilerplate 2. E ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...
- 阿里云Ubuntu下安装、配置权限和导入本地mongodb
---恢复内容开始--- 第一部分:首先先在Ubuntu下安装好mongodb,步骤如下: 首先我们需要借助远程管理工具链接到阿里云上的ubuntu系统,接着进行如下操作 一.导出软件源的公钥 sud ...
- 【ABP框架系列学习】启动配置(5)
ABP提供了在启动时配置模块的基础设施和模型. 1.配置ABP 配置ABP是在模块的PreInitialize方法中完成的,例如: public class SimpleTaskSystemModul ...
随机推荐
- Ubuntu 下解压tar.xz方法
参考地址:https://www.cnblogs.com/baby123/p/6611169.html
- python selenium 定制启动Chrome的选项注意事项(十九)
自动化测试的时候为了避免每个case均需要登录的操作,所以把登录后的cookie信息保存下来,在有效期内使用cookie的方式实现登录操作,为了避免展现太多的登录操作,需要通过设置浏览器的option ...
- react高阶组件
高阶组件 为了提高组件复用性,在react中就有了HOC(Higher-Order Component)的概念.所谓的高阶组件,其本质依旧是组件,只是它返回另外一个组件,产生新的组件可以对属性进行包装 ...
- PP.io的三个阶段,“强中心”——“弱中心”——“去中心”
什么是PP.io? PP.io是我和Bill发起的存储项目,目的在于为开发者提供一个去中心化的存储和分发平台,能做到更便宜,更高速,更隐私. 当然做去中心化存储的项目也有好几个,FileCoin,Si ...
- 查询 SQL_Server 所有表的记录数: for xml path
--我加了 top 10 用的时候可以去掉 declare @select_alltableCount varchar(max)='';with T as (select top 10 'SELECT ...
- C常量与控制语句
在C语言中定义常量的两种方式 在C语言编程中定义常量有两种方法. const关键字 #define预处理器 1. const关键字 const关键字用于定义C语言编程中的常量. const float ...
- 使用jquery+css实现瀑布流布局
虽然可以直接使用css实现瀑布流布局,但显示的方式有点问题,所以这儿就直接使用jquery+css来实现瀑布流布局,最终效果如下: 思路是通过将每个小块的position设置为relativ ...
- 二、CSS选择器
1.CSS派生选择器 概念:通过依据元素在其位置的上下文关系来定义样式. 实例: <!--index.html--> <!DOCTYPE html> <html lang ...
- 2018-2019-1 20165205 ch02 课下作业
ch02 课下作业 2.96 代码 #include <stdio.h> #include <stdlib.h> typedef unsigned float_bits; fl ...
- mysql 表映射为java bean 手动生成。
在日常工作中,一般是先建表.后建类.当然也有先UML构建类与类的层级关系,直接生成表.(建模)这里只针对先有表后有类的情况.不采用代码生成器的情况. 例如: 原表结构: ),)) BEGIN ); ) ...