如何设计灵活的权限管理系统

窗户纸 2012-10-21 02:08:28
如下系统架构可以实现灵活的权限管理,包括:
1. 多身份管理的支持: 就像潜伏中的余责成所具有的双重身份一样,企业中实际存在大量多重身份的情况,某个员工如果既为销售部工作,又为采购部工作,他的汇报上级应该是各自业务的领导,多身份的支持允许企业实现这种需求。
2.角色的双重属性,在绝大部分软件中,角色只有包含(或者称隶属)关系,用于权限分配时,角色的下属角色都会拥有上级角色的权限,但实际企业应用中这种单一的所属关系使用起来很别扭,比如我们想构建一个组织结构图,总经理管理若干副总,不能让副总具有总经理的权限,为此,应该增加一种管理型下属角色关系,来实现这种需求。
3.计算机登录控制的实现,在安全级别较高的企业中,往往希望某些业务只在特定的计算机物理位置处理,这样我们就需要控制用户对计算机的登录能力,结合多身份管理,我们可以让用户的特定身份与计算机进行关联,这样就可以实现用户在处理特定业务时只能在特定计算机登录的安全需求。

...全文
66157 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
小屁孩_P 2014-06-10
  • 打赏
  • 举报
回复
mark 有时间看看
abis 2012-10-23
  • 打赏
  • 举报
回复
http://ext.abis.com.cn
csdn_风中雪狼 2012-10-23
  • 打赏
  • 举报
回复
参照windows的权限管理
diecode 2012-10-23
  • 打赏
  • 举报
回复
学习
以前参照windows系统设计
窗户纸 2012-10-23
  • 打赏
  • 举报
回复
哈哈,明天下班前结贴,有发表意见的尽快呀
窗户纸 2012-10-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
LS的大侠,你的系统有没有试用版的?我想看看。
[/Quote]
有呀,9个并发连接不限期限,就跟免费送一样
puzhijie网页能找到下载地址,40MB左右.
使用了.net framework2.0
jflanmay 2012-10-22
  • 打赏
  • 举报
回复
LS的大侠,你的系统有没有试用版的?我想看看。
窗户纸 2012-10-22
  • 打赏
  • 举报
回复
附上一个条件设置的截图:
窗户纸 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
我就只举一个例子吧,比如一个涉及到数据权限的查询,数据权限是一张地市表,就拿广东省的所有地级市为例吧,他存放在数据库的一张地市表中,
那么,A拥有的权限是只能查A所在市的数据,而B拥有的权限是查广东省所有地市的数据权限,你给他们分配好之后,系统运行了好长一段时间,现在,有了行政命令,在广东省新增了一个市,管理员维护了这张地市表,加上了一个市,请问,B能够动态的自动获取这个市的数据权限吗?只有一种……
[/Quote]
对于定制开发的软件,由于涉及因素很多,权限处理是很困难,但对于我的平台,这样的需求就非常容易处理:
1)我们将图纸业务看作一个业务流程,其与另一个业务流程行政区划(地/市等)有业务关联关系:及每个图隶属于一个行政区划。
2)行政区划业务中有一个步骤可以管理有权限的阅读人(相当与A).
3) 所有业务之上有一个总业务,与所有的行政区划、地图相关联,总业务中有一个步骤是管理总图阅读人(相当与B).

这样,我们在显示的地图视图中可以建立一个简单的筛选:我有权阅读的视图,其筛选条件为:
总图阅读人包括我
或 此图的对应行政区划的地图阅读人包括我。
这样就可以轻松解决地图访问权限问题,整个配置过程没有编写一行代码,
有关视图的配置说明见:http://www.puzhijie.com/support/handbook_5_6.aspx
有关条件配置说明见:http://www.puzhijie.com/support/handbook_5_5.aspx
niss 2012-10-21
  • 打赏
  • 举报
回复
我就只举一个例子吧,比如一个涉及到数据权限的查询,数据权限是一张地市表,就拿广东省的所有地级市为例吧,他存放在数据库的一张地市表中,
那么,A拥有的权限是只能查A所在市的数据,而B拥有的权限是查广东省所有地市的数据权限,你给他们分配好之后,系统运行了好长一段时间,现在,有了行政命令,在广东省新增了一个市,管理员维护了这张地市表,加上了一个市,请问,B能够动态的自动获取这个市的数据权限吗?只有一种方法,增加抽象权限,hoho,这下郁闷了,权限类型的划分越来越多,越来越复杂....,尤其是数据权限是随着需求的变化而变化的,有的系统可能一种数据权限都不需要,而有的系统,则会出现很多数据权限,什么单位权限啦,岗位权限啦,地域权限啦...无穷无尽
showjim 2012-10-21
  • 打赏
  • 举报
回复
看了你的博客明白你说的什么了。

我以前也设计过一个权限系统,参照的是windows,但是有一个不同的是:角色或组权限不是强制绑定的,只是用户权限的初始状态,所以可以任意调配权限,而且直观简单。
showjim 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
我曾经做过一段时间的运维,使用windows的目录系统进行权限管理,它在组的操作上建议域本地组与权限挂钩,全局组与用户挂钩,但仍然会存在大量的“专有角色”,它具有拒绝权限,但拒绝的优先级是最高的,只要有拒绝,该组成员立马全部歇菜。
[/Quote]
拒绝可以绑定到用户的吧
[Quote=引用 6 楼 的回复:]
任何一个人员组合都可以用多个已有角色合成
[/Quote]
windows也可以啊

可能是不还没能理解你说的,汗
窗户纸 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
我觉得windows的权限模式挺不错。
[/Quote]
我曾经做过一段时间的运维,使用windows的目录系统进行权限管理,它在组的操作上建议域本地组与权限挂钩,全局组与用户挂钩,但仍然会存在大量的“专有角色”,它具有拒绝权限,但拒绝的优先级是最高的,只要有拒绝,该组成员立马全部歇菜。
我的方法是“双向权限管理”,有两篇文章可参照:
http://blog.csdn.net/etudiant6666/article/details/6260502
http://www.puzhijie.com/product.aspx

说得简单些,就是对于每个权限,其权限队列中的每个权限项都有允许/拒绝设置,按照其在队列中的先后顺序进行权限计算。经过这样设置,任何一个人员组合都可以用多个已有角色合成,也就避免了众多“专有角色”加大运维人员工作量的问题了。
showjim 2012-10-21
  • 打赏
  • 举报
回复
我觉得windows的权限模式挺不错。
ssa 2012-10-21
  • 打赏
  • 举报
回复
支持一下,比较难
窗户纸 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
这个几乎是无解的,我也花过很大精力很多时间研究过,发现权限是在数据和程序逻辑上紧耦合的,很难有完美的方案,权限是由程序逻辑决定的,但却与后台数据紧密结合在一起,功能权限还好说,但数据权限就非常麻烦,尤其是动态数据的情况下,比如机构权限,如果涉及到机构的动态增删,权限也要动态随机构表变化,就很麻烦了
[/Quote]
你所指的紧耦合更多是业务的紧耦合,比如对于某用户需求,为客户投诉时要售后做,为产品咨询时要发给售前,假设中间要有某个操作,不进行特殊处理就很难通过架构来分拆不同人群,
我的做法是设计一个一整套的面向业务体系,在跳转时增加一个“动态操作人”设置项,这样就可以实现自动化的配置:

这里可以看到更多的资料:http://www.puzhijie.com/product.aspx
niss 2012-10-21
  • 打赏
  • 举报
回复
这个几乎是无解的,我也花过很大精力很多时间研究过,发现权限是在数据和程序逻辑上紧耦合的,很难有完美的方案,权限是由程序逻辑决定的,但却与后台数据紧密结合在一起,功能权限还好说,但数据权限就非常麻烦,尤其是动态数据的情况下,比如机构权限,如果涉及到机构的动态增删,权限也要动态随机构表变化,就很麻烦了
窗户纸 2012-10-21
  • 打赏
  • 举报
回复
这种系统的实现并不复杂,但给运维人员会带来更加灵活的操作能力 , 在http://blog.csdn.net/etudiant6666/article/details/8070634中,也有相应的应用。

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧