Winform快速开发框架之权限系统设计(1) - 基本概述
作者:C/S框架网  发布日期:2019/01/28 23:55:06
  Winform快速开发框架之权限系统设计(1) - 基本概述

基于C/S结构快速开发框架之权限系统设计 - 基本概述|C/S框架网

一、权限系统基本概述

本文档描述了C/S系统快速开发框架旗舰版V5.0权限管理模块详细功能设计,权限实现原理、系统架构设计、数据库设计、功能测试以及实施方案等。

1.1 权限管理简单定义

权限管理是后台系统都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制,针对对象是使用该系统的用户或员工,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,数据泄露等问题。根据系统设置的安全规则或策略,用户可以访问而且只能访问自己被授权的资源。

C/S系统快速开发框架权限管理是一个账号对应多个角色,每个角色对应相应的权限集RBAC模型,且通过角色可以实现灵活且多样的的权限操作需求。

1.2 权限类型

基于角色的访问权限控制(RBAC)模型,赋予用户的权限管理,可以分为三大类型:

 功能权限

角色的定义对模块和功能能否有执行权限,功能是系统执行权限控制的基本单元。
可以操作的功能不同,保证系统安全,避免操作风险。

 数据权限

权限的定义对功能涉及到的数据是否有增删查改的权限,能否查看与编辑系统相关数据。
保证数据隐私,避免数据泄密。

 界面权限

账号的定义对控制字段的可见性,可编辑性,用户可以看到的页面进行限制,职责不同所需要页面不同,保证操作效率,避免页面干扰。


1.3 RBAC模型

1.3.1 基于角色的访问控制

RBAC(Role-Based Access Control)基于角色的访问控制。成熟的权限模型强调三个要素:用户、角色、权限,用户与角色是多对多关系,角色与权限是多对多关系。RBAC是以“用户”为单位的权限设计,以“权限”为单位的权限设计,以“用户”与“权限”结合的权限设计。

权限设计:用户与角色逻辑关系图:
 
贴图图片

RBAC模型特点:

把权限赋予角色,再把角色赋予用户。
用户和角色,角色和权限都是多对多的关系。
用户拥有的权限等于所有的角色的权限之和。


贴图图片


1.3.2 基于RBAC的用户组

基于RBAC模型,适当延展增加用户组概念,直接给用户组分配角色,再把用户加入用户组,这样用户除了拥有自身的权限外,还拥有了所属用户组的所有权限。用户组权限是粗狂式设计,不能友好的细分权限。


贴图图片


1.4 C/S系统开发框架窗体权限控制

C/S快速开发框架的权限控制对象:功能菜单、数据窗体、功能按钮。

功能界面是点击菜单或点击按钮打开的,因此权限控制首先是控制菜单。当用户点击菜单打开界面后,系统会分析当前用户的权限以及对界面的组件进行控制,如控制按钮、表格列、界面组件是否显示或禁用等。

1.4.1 开发框架数据窗体分类

数据窗体分为两类:

a)数据字典窗体. 继承基类:frmBaseDataDictionary

b)业务单据窗体. 继承基类:frmBaseBusinessForm


1.4.2 按钮(功能点)指定权限值

为了方便给用户分配权限以及进行权限控制,C/S系统快速开发框架针对窗体中每个功能按钮或功能点分配一个特殊的数字编号(计算机二进制数据的数值),该数值分别对应2^n次方,如0,1,2,4,8,16,32,64,128,256,512,1024。。。32位的硬件系统最多支持2^32次方,64位的硬件系统最多支持2^64次方。

若【X】按钮分配的数值为0,则该按钮或功能点不受权限控制,任何用户都可访问。
若【X】按钮分配的数值为1,只有拥有1权限的用户才能访问。


1.4.3 窗体的基本权限

数据字典窗体的基本功能权限:增、删、改、查、打印、预览。

C# Code:

/// <summary>
/// 数据字典拥有的功能(增、删、改、查、打印、预览)
/// </summary>
public const int MASTER_ACTION = DATA_ACTION_VALUE + REPORT_ACTION_VALUE;



业务单据窗体的基本功能权限:增、删、改、查、打印、预览、审核、修改历史。

C# Code:

/// <summary>
/// 业务单据拥有的功能(增、删、改、查、打印、预览、审核、修改历史)
/// </summary>
public const int BUSINESS_ACTION_VALUE = DATA_ACTION_VALUE + REPORT_ACTION_VALUE +
ButtonAuthority.APPROVAL +
ButtonAuthority.SHOW_MOD_HISTORY;




1.5 二进制的逻辑运算

二进制是计算技术中广泛采用的一种数制,二进制数据是用0和1两个数码来表示的数。
二进制数的运算除了有【四则运算】外,还可以进行【逻辑运算】,下面分别予以介绍。


1.5.1 二进制四则运算

二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算,其算法规则如下: 

加运算:0+0=0,0+1=1,1+0=1,1+1=10(逢2进1)

减运算:1-1=0,1-0=1,0-0=0,0-1=1(向高位借1当2)

乘运算:0×0=0,0×1=0,1×0=0,1×1=1(只有同时为“1”时结果才为“1”) 

除运算:0÷1=0,1÷1=1,二进制数只有两个数(0,1),因此它的商是1或0。


1.5.2 二进制的逻辑运算

逻辑运算又称布尔运算。

表示方法有:"或"/"OR"、"与"/"AND" 、"非"/"Xor"、"等"/"="。

1和0表示"真"和"假"。

And:同为真时为真。如:1 AND 1=1,1 AND 0=0。

Or:同为假时为假。如:0 OR 0=0,1 OR 0=1, 1 OR 1=1。

Xor:相同为假。如:1 XOR 1=0, O XOR O=0, 0 XOR 1=1。



上一篇 下一篇