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

栏目: ASP.NET · 发布时间: 5年前

内容简介:在前面两篇随笔《我们知道,权限管理一般都会涉及到用户、组织机构、角色,以及权限功能等方面的内容,ABP框架的基础内容也是涉及到这几方面的内容,其中它们之间的关系基本上是多对多的关系,它们的关系如下所示。

在前面两篇随笔《 ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理 》和《 ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程 》开始介绍了权限管理的内容,其中只是列出了内部的权限系统的审计和登陆信息,以及对Winform界面的整合,本篇随笔继续介绍ABP开发框架的权限控制管理内容,包括用户、角色、机构、权限等方面,以及该框架在Winform方面的应用集成。

1、ABP框架的权限控制管理内容

我们知道,权限管理一般都会涉及到用户、组织机构、角色,以及权限功能等方面的内容,ABP框架的基础内容也是涉及到这几方面的内容,其中它们之间的关系基本上是多对多的关系,它们的关系如下所示。

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

不过在官网下载的框架里面,包含权限管理这些应用服务层和展示层的内容并不完整,只是简单的包括了用户和角色的基础管理,而且很多权限管理所需要的基础功能并没有提供。

根据ABP框架提供的基础数据库表,我们可以进一步整理权限管理几个重要概念和真实数据库表之间的对应关系,基于这个基础上,我们可以完善整个权限管理模块内容。

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

上图是ABP基础框架中权限模块里面包含的一些主对象表和中间表,中间表主要用来存储两个对象之间的多对多关系,如角色包含多个用户,用户属于多个机构,机构包含多个角色等等。

2、基于ABP框架的权限管理模块

1)组织机构管理 

组织机构主要就是一个层级的对象关系,一般包含但不限于公司、部门、工作组等的定义,其中组织机构包含用户成员和角色成员的关系,如下界面所示。

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

组织机构包含的成员可以添加多个人员记录,添加界面如下所示。

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

添加角色界面如下所示。

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

2)角色管理

角色信息没有层级关系,可以通过列表展示。

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

其中角色包含权限分配和角色成员的维护,如下是角色编辑界面,包含角色基本信息、权限、成员管理等。

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

角色的权限包含系统可以用的权限,并可以勾选为角色设置所需的功能点,如下界面所示。

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

用户成员则和机构的用户管理一样,可以指定多个用户。

3)用户管理

用户管理只需要管理用户基本的信息即可,我们如果需要分配角色可以在角色管理里面统一处理。当然,创建用户的时候,也可以ABP框架的收费版本界面一样,为用户指定角色和机构信息。

我这里主要是维护用户信息即可,用户列表界面如下所示。

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

用户编辑或者查看界面,除了可以看用户基础信息外,可以查看用户包所属的机构(多个),或者所属的角色(多个)

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

当然可以查看这个用户本身拥有的权限功能点,如下界面所示。

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

4)权限功能

严格来说,ABP框架并没有统一管理好权限功能点的,它没有任何表来存储这个功能集合,而是通过派生AuthorizationProvider的子类来定义权限功能点,这种需要通过指定AuthorizationProvider的子类的方式创建功能点,需要每次系统模块增加功能点的时候,编码一下,然后增加自己的功能点,如下界面所示。

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

这种方式可能能够满足大多数的需要,不过我如果需要增量开发,或者动态增加某些功能点的时候,就有点不方便了。

我在这个基础上引入了一个权限功能的表用来存储功能点的,然后提供管理界面来动态维护这些功能点。如下界面所示。

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

这样我可以动态添加或者批量添加所需要的功能点,并且和整个权限管理模块串联起来,形成一个完整的控制体系。

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

这些概念主要还是来源于我的Winform开发框架和混合式开发框架里面的控制思路,以及界面展示的处理。

这样我们就可以管理自己的权限功能点,并可以为指定的角色配置相关的控制功能点,如下表所示是角色的权限集合(系统中间表),也就是给角色分配的功能点,依旧是在原来的系统表里面存储。

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


以上所述就是小编给大家介绍的《ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程珠玑(续)(修订版)

编程珠玑(续)(修订版)

【美】Jon Bentley 乔恩•本特利 / 钱丽艳、刘田 / 人民邮电出版社 / 2015-2 / CNY 35.00

历史上最伟大的计算机科学著作之一 融深邃思想、实战技术与趣味轶事于一炉的奇书 带你真正领略计算机科学之美 多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢......一起来看看 《编程珠玑(续)(修订版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具