Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
四 权限系统实现原理
本文将描述基于功能按钮权限控制的基本实现原理,在学习权限系统实现原理之前,请先看下面的流程图:

【当前用户】:是指当前登录系统的用户(软件使用者)。
【点击菜单】:用户点击界面上面的菜单栏或左侧导航菜单。用户能查看或点击的菜单项代表当前用户拥有此菜单的权限。
【打开界面】:用户点击菜单执行事件并成功打开功能窗体,触发初始化界面(Form_Load)事件,开发框架底层将根据当前用户的权限进行按钮控制,有按钮权限则显示按钮,无权限的则不创建或隐藏按钮。
【按钮控制】:下面将重点讲解界面的按钮权限控制实现原理。
4.1 按钮权限控制基本原理
以数据字典窗体【员工管理】举例说明,假设【员工管理】拥有以下按钮及对应的权限值:

模拟场景:
用户【User-孙】属于【Role1】角色, 在【角色管理】界面内给【Role1】角色分配【员工管理】窗体的权限为:(1,2,4,8)=15,勾选【新增】、【删除】、【修改】、【查看】功能, 用户【User-孙】登录后取到【员工管理】窗体的权限值为1+2+4+8=15. 在打开【员工管理】窗体时, 框架底层对【员工管理】窗体的每个按钮分别与当前用户的权限值15进行逻辑【与】运算。
逻辑【与】运算结果如下:

在Form.Load事件内调用InitButtons方法,有权限的按钮则Button.Enable=True, 无权限的按钮则Button.Enable=False;
4.2 逻辑“与”运算C#代码参考
相关C#代码参考:

ButtonAuthorized方法主要是进行逻辑“与”运算:

上一篇:Winform快速开发框架之权限系统设计(2) - 功能模块介绍
基于C/S结构快速开发框架之权限系统设计(1) - 基本概述
其他文档:
Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
扩展按钮功能 - 扩展一个【复制单据】按钮操作详解

参考文档:
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
使用Winform代码生成器生成FastReport.NET报表模板文件(frx文件)
.NET代码生成器V6.1 - 快速生成Winform窗体代码
C#Winform代码生成器新功能 - 支持配置每个字段可弹窗选择数据
C# Winform代码生成器新功能 - 生成表格编辑窗体
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
C/S Winform框架开发指南 | 如何新增系统消息参数(sys_SystemSettings表)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
使用Winform代码生成器生成FastReport.NET报表模板文件(frx文件)
.NET代码生成器V6.1 - 快速生成Winform窗体代码
C#Winform代码生成器新功能 - 支持配置每个字段可弹窗选择数据
C# Winform代码生成器新功能 - 生成表格编辑窗体
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
C/S Winform框架开发指南 | 如何新增系统消息参数(sys_SystemSettings表)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
