基于角色的菜单按钮权限的设计及实现

1、菜单权限的设计

5个表的建立:用户表、角色表、菜单表、用户角色表、角色菜单表
后台动态加载json数据给前台。 这里的json数据,就是菜单栏的数据(就是通过后台数据查询找出当前用户拥有哪些菜单)
用户(操作员、管理员、超级管理员)只能看到自己对应的菜单数据
思路:sql语句加上对应的where条件 ,来对查询到的所有数据做进一步的筛选。

2、实现步骤:

设计表结构,
依次往菜单表、角色表、用户表中加入数据,
根据页面需要的数据,设计webapi接口方法,
通过网页操作将数据加入角色菜单 rel_rolemenu、用户角色rel_userrole的关系表中

3、开发过程中发现的问题

1. 返回当前用户的菜单按钮数据

A方式 通过关系表查询 , 这种方式查询不方便 (如果用EF的导航属性的话,实现起来还是相对简洁些的) ,但是做数据修改的时候很方便 ,可以直接对关系表做操作。

B方式 通过存储的MenuIds去菜单表中做查询,这种方式查看查询方便,但是修改不方便,需要 在 用户更新角色数据、角色更新权限数据、权限数据更新时,去更新用户表里面的MenuIds值 很是繁琐

我采用的方式:由于个人比较懒,喜欢数据能够直观些,也不太知道哪种方式好,就把2种方式都用了! 但是个人建议,还是用第一种方式,不要弄复杂了,功能能实现就行!

事后分析总结: A方式 在表里就不需要加MenuIds、RoleIds字段来处理,直接通过 用户角色列表,操作关系表 rel_userRole、rel_roleMenu表来处理,由于我们现有公司该表没有做软删除的设计,还需要在删除 单条menuId、roleId值时,去这些关系表里删除对应的记录

B方式 实际上就不需要建关系表了, 而要加上MenuIds、RoleIds字段值,然后通过这些MenuIds、RoleIds去Menu表、Role表中找出对应的记录就可以了。 在进行menu表、role表数据进行更新时要找出它所影响的 用户数据、角色数据是哪些、然后更新这些数据的MenuIds、RoleIds值

2. 菜单表父子结构的数据

A方式 直接将表数据交给前端人员处理成树形结构

B方式 自己在后端处理这些数据,然后将处理的树形结构数据返回给前端人员,具体实现方法,我将在我的下一篇博客里写出来


作者:Bravo Yeung
Email: legege007@126.com
源地址:https://www.cnblogs.com/for-easy-fast/p/12101175.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Winform 是一种Windows Forms应用程序开发框架,主要用于创建基于Windows操作系统的桌面应用程序。在Winform中,可以使用C#或VB.NET等编程语言进行开发。 带用户角色菜单管理的开发框架是指在Winform应用程序中添加了用户角色菜单管理功能的框架。通过这个框架,可以实现对用户角色的管理和对菜单权限的控制。 用户角色管理是指通过这个开发框架可以创建、编辑和删除用户角色。每个用户可以被分配一个或多个角色,不同角色拥有不同的权限。通过角色管理,可以灵活地控制用户对应用程序功能的访问权限菜单管理是指通过这个开发框架可以创建、编辑和删除菜单项。每个菜单项可以被分配给一个或多个角色。当用户登录应用程序后,系统会根据用户所属的角色来动态显示可访问的菜单项,从而实现对不同角色菜单权限控制。 在开发过程中,可以使用数据库来存储用户角色菜单项的相关信息。可以设计一个用户表和一个角色表,其中用户表中包含用户的登录信息和角色ID,角色表中包含角色的名称和权限信息。可以使用关联表来实现用户和角色之间的多对多关系,以及角色菜单项之间的多对多关系。 通过这个开发框架,可以方便地实现对用户角色的管理和对菜单权限的控制,提高了应用程序的安全性和可维护性。开发人员可以根据具体需求进行功能扩展和界面设计,使得应用程序更加灵活、易用和易于维护。 ### 回答2: WinForm 是一种用于 Windows 桌面应用程序开发的技术框架,可以帮助开发人员快速构建用户友好的界面和功能丰富的应用程序。WinForm 提供了丰富的控件库,可以轻松创建各种用户界面元素,例如窗口、按钮、文本框、下拉框等。 带用户角色菜单管理的开发框架是在 WinForm 基础上扩展而来的,用于实现用户角色菜单权限的关联管理。在一个应用程序中,不同的用户可能具有不同的角色,而每个角色对应的菜单权限也不同。开发框架的目的是提供一套方便的机制,让开发人员可以灵活地定义角色权限,并在界面上动态地显示和隐藏相应的菜单项。 这个开发框架通常包括以下几个核心功能: 1. 用户角色管理:提供用户管理功能,包括创建、编辑和删除用户角色。每个用户角色可以包含多个用户,并且可以分配不同的菜单权限。 2. 菜单管理:开发框架可以提供一个可视化的界面,让开发人员方便地定义各个菜单项及其对应的权限。这些菜单项可以在运行时根据用户角色来进行动态显示和隐藏。 3. 菜单权限控制:框架会为每个菜单项分配一个权限标识,开发人员可以根据需要定义不同的权限。在用户登录系统后,框架会根据用户所在的角色权限,来动态地判断哪些菜单项对用户可见。 4. 数据库支持:为了保存用户角色菜单权限的数据,开发框架通常会提供与数据库的集成支持。开发人员可以方便地将这些数据存储到数据库中,并在需要的时候从数据库中读取。 通过使用带用户角色菜单管理的开发框架,开发人员可以更加高效地实现用户权限管理功能。这种框架不仅可以提高开发效率,还可以保证应用程序的安全性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值