您的位置:首页 > 运维架构 > 网站架构

一步步教你如何用疯狂.NET架构中的通用权限系统 -- (用户 - 角色 - 操作权限 - 模块菜单)之间的关联关系

2010-12-07 15:36 1271 查看
有时候把这个权限彻底吃透,也是蛮头疼的事情。

【第一部分】
用户 - 角色 之间的关系比较好梳理, 一个用户可以在多个角色里,一个角色里可以有多个用户,是(多对多的关系)
需要
有用户表 Base_User
有角色表 Base_Role
有用户-角色关联关系表 Base_UserRole



【第二部分】
用户 - 操作权限之间的关系就是, 这个用户到底有哪些操作权限?
角色 - 操作权限之间的关系就是, 这个角色到底有那些操作权限?
操作权限就不只是添加、删除、修改权限,那其实是一个技术思维上的权限而已,真正的业务权限就是:“谁有人事管理权限,谁有项目管理权限,谁有管理客户的权限”,是一个很笼统的业务上的权限,而不是所谓的 谁有添加、删除、修改的权限这么细腻,很多时候一个软件就4个人,4个人是个岗位,只需要有4种权限就可以了,“谁负责仓库?谁负责财务?谁负责业务?谁是老板”也就这么一回事情,不用搞得那么复杂。
虽然从规范的角度来讲,权限都应该先设置给角色,但是国内应用,大多是直接赋予某个操作员哪些权限,而且那么多的角色名称也难想出来,比较难定义好分工的岗位,明确的角色划分等,而且很小的应用程序就看如何见效最快,其他都等以后再优化配置管理了。



【第三部分】
用户 - 模块菜单之间的关系就是,哪个用户能访问那些模块? 这里延伸出了有一个系统默认的“模块访问权限”,谁对哪些模块有相应的模块访问权限,是一个数据集范围权限的概念,当然 角色 - 模块菜单关系表的逻辑也是一样的。

操作权限定义表 Base_PermissionItem 其中需要有一个系统默认的“模块访问权限”
系统里有哪些菜单模块 Base_Module,其实是一种资源,一种树形资源,对哪些资源有什么权限。
什么对象对什么有什么权限?的思维存储了数据范围权限 Base_ResourcePermissionScope
当然还会涉及到 用户表 Base_User, 角色表Base_Role。

先要开启主程序中的,是否采用配置菜单权限的开关,因为很简单的管理系统,并不需要设置菜单权限就可以了。





【第四部分】
还有一种逻辑是,哪个菜单,可以由哪些用户、哪些角色访问,这其实是第三部分的另外一种展示方式,数据的关联关系与逻辑关系,其实是跟第三部分是完全一样的。



【第五部分】
操作权限 - 模块菜单,用户角色-操作权限 之间的关联关系,例如用户有某些操作权限,那是不是还可以理解,若管理系统中有某个操作权限后是否默认可以访问某些菜单?完全是可以的,所以这时候有 操作权限-模块菜单之间的关联关系,就是由于有了某个操作权限,导致可以访问哪些模块菜单。这个默认关系系统里设置好后,只要用户或者角色有相应的操作权限,那就可以有与之对应的模块菜单的访问权限了。



导读:
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限

/Files/jirigala/DotNet.CommonV3.0.rar
/Files/jirigala/handbookV3.0.pdf



淘宝店地址:
http://list.taobao.com/browse/0/n-8ddf3d8a90550373fa749337efe29f03---------------40--commend-0-all-0.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NET 权限 架构 模块 角色
相关文章推荐