系统设计——权限系统

简介:

前言:写了两篇关于DataGridView的文章:Winform系列——好用的DataGridview过滤控件(表格的高级搜索功能) 和 Winform系列——好看的DataGridView折叠控件。这章来记录下权限系统。关于权限系统,网上版本非常多,大都实用性不太高,大多数的系统就是因为分得太细了反而使系统错综复杂,甚至有看到有按照角色、部门、地区、用户四个方便分别去做权限分配的,我的个神,这样一来,要取一个用户的权限那个麻烦,当然并非说那些大神们封的东西不好,而是适用性的问题,对于某些大型公司的系统,对权限要求确实有那么高也说不定,但其实根据本人工作几年的经验来看,大部分的.Net系统其实对权限的要求并没有想象中的那么高。在这里记录下自己从头到尾设计和开发的一个权限系统,个人觉得对于基本的权限分配够用了。

1、系统介绍:说是系统,其实权限只是系统的一个模块,此系统主要就是根据角色来分配权限的,通过角色分别控制用户的菜单权限和菜单对应页面的按钮权限。

 

2、数据表设计:

 (1)上图

 

   (2)表的DDL语句:

  View Code

   (3) 表说明:权限模块总共就6张表,即部门表、用户表、角色表、用户角色表、菜单表、菜单角色表(包含按钮权限)。用户表和角色表之间的关系是通用的多对多的关系,没什么好说的。看看TB_MenuRole表,这个表用来存储角色的菜单权限和按钮权限,其中role_type取值为menu和button,如果是menu,则此行记录用于存储菜单权限,button_id为空;如果是button,则此行记录用于存储菜单下的某一个按钮的权限,menu_id为按钮所在的菜单id,button_id为对应的按钮id。还有一个问题就是按钮的id从哪里来?是否还应该有一个储存按钮ID的表呢?答案是不需要,后面会介绍。

 

3、效果图:先做的是一个CS的系统,后续还会做BS的。

3.1 权限模块主要分为4大页面:用户管理、角色管理、部门管理和菜单管理

3.2 用户管理页面:

“设置角色”操作:

 

3.3 角色管理页面:

 

“编辑权限”操作:

在“编辑权限”弹出框中点击“设置按钮操作”

角色管理页面的“管理成员”操作:

可以新增当前角色的用户,点击“新增”

 

3.4 部门管理页面:

 

3.5 菜单管理页面:

 

 

4、后台业务逻辑都是简单的增删改查,没什么好说的。前面说的关于按钮ID是否需要一张按钮表的问题,我们系统在处理方式是

在点击设置按操作的时候传递一个菜单url,然后在代码里面通过反射得到所有的按钮,然后勾选按钮后保存到数据库。注意一个页面的按钮的ID不会重复,所以通过这样可以取到唯一的按钮,而在数据表TB_MenuRole中保存的如果是按钮权限,是有保存Menu_Id的,所以不必担心不同页面的问题。这样设计的好处是当程序员在页面上面新增删除按钮后不用修改配置,通过反射即可加载页面的即时按钮个数。纯属个人设计,如果有问题,欢迎大侠们指正。

 





本文转自懒得安分博客园博客,原文链接:http://www.cnblogs.com/landeanfen/p/4607766.html,如需转载请自行联系原作者

目录
相关文章
|
5天前
|
安全 Java 数据库
设计一个简单的权限系统
在Java中构建简单权限系统涉及定义Role和Permission实体,创建User实体关联角色,设计权限分配机制,实现权限检查方法及界面交互。示例代码包括实体类、权限分配服务、安全服务和主函数。实际应用可能需要更复杂的权限控制、动态管理、数据库集成和用户界面。Spring Security等框架可提供全面的安全管理解决方案。【5月更文挑战第3天】
|
2月前
|
存储 监控 安全
【软件设计师备考 专题 】设计系统功能:安全性策略和工作流
【软件设计师备考 专题 】设计系统功能:安全性策略和工作流
64 0
|
存储 SQL 缓存
用户系统设计
注册、登录、查询、用户信息修改,哪个需求量最大? 支持100M DAU。注册,登录,信息修改 QPS 约 100M * 0.1 / 86400 ~ 100 0.1 = 平均每个用户每天登录+注册+信息修改 Peak = 100 * 3 = 300
150 0
|
消息中间件 JSON 安全
如何设计权限系统?
如何设计权限系统?
|
设计模式 监控 Java
全网最全的权限系统设计方案
日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。
2538 1
|
存储 前端开发 JavaScript
前后端分离如何做权限控制设计?
近几年随着react、angular、vue等前端框架兴起,前后端分离的架构迅速流行。但同时权限控制也带来了问题。 网上很多前、后端分离权限仅仅都仅仅在描述前端权限控制、且是较简单、固定的角色场景,满足不了我们用户、角色都是动态的场景。 且仅仅前端进行权限控制并不是真正意义的权限控制,它只是减少页面结构暴露、增强用户体验的功效。
前后端分离如何做权限控制设计?
|
数据库 数据安全/隐私保护 开发者
权限管理-需求分析 | 学习笔记
快速学习 权限管理-需求分析
101 0
|
存储 设计模式 缓存
权限管理系统,可以这么设计
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。对权限做管理的系统,就是权限管理系统。
|
前端开发 安全 JavaScript
系统权限设计 - 推荐方案
在上篇文章《系统权限设计 - 基本概念和思路》中,介绍了我们在做权限设计的时候需要注意的一些点。
405 0
|
PHP 数据库 数据安全/隐私保护
简单权限管理设计
这套权限管理是配合Zend Framework设计的,用在其他地方的时候可以做些修改。
简单权限管理设计