日期:2014-05-20  浏览次数:20899 次

系统的权限设计问题
目前在做的产品权限设计很复杂,产品下有很多子系统,而且每个系统的用户的角色不完全一样,但是想统一规划一下,目的使有新的子系统添加来不至于混乱,程序改动不大,请高手指点,或者提供相关资料!

------解决方案--------------------
这是我以前的一段话,也许对你有点参考:

做为一个系统,公司的另一个系统出来了,要重搞一套系统权限管理 

总这么搞下去还不把人搞死啊? 

思路: 

一、授权对象 
想一想,无论是用户、角色、操作员还是操作员组...统统可以视为用户,也就是授权的对象 

二、授权目标 

普通的权限管理可能就是用户、功能 或角色功能,但是对于一个庞大的公司,数据操作范围是受到限制的,如集团一公司的某部门人员只能操作他这个部门的数据... 

因而,无论是功能,还是数据范围的限制,总之,他们是授权目标 

三、操作权限 
对于每个目标,对于功能来说,可能一般系统不限制操作,但对于数据来说,就要限制操作,如增、删、改、查等等 

四、状态 
状态如何保存?状态是个核心问题。 
因为每一个项目都有它自己的状态,于是,就应用DataSet,把项目、操作、项目操作定义在数据集中,并建立关系,并提供方法获取本次操作中状态变化数据。 

五、树 
做一个接口,只要满足这个接口,授权对象就可以以树状形式展式,并提供了TreeHelper 

六、外部接口 
因为项目、操作是有关系的,控件加载后,势必要加载数据及相应状态。难道这些做控件时就知道了吗?非也,要想独立,必段提供外部接口以供初始他们的状态,于是用事件完成(见代码) 

针对上面的分析,于是想出搞一个台项目-操作 控件 
而加上授权对象,同时就可能操作多种 项目-操作 的集合 

说干就干,上下班的路上想着思路,上班就写,很快搞出了两个控件。 
(当然,如果加班的话,搞不出来噢,是对我而言,哈哈) 

现把控件源码(注意是控件源码,不是全部的权限管理子系统源码,后者仅供培训学员学习和与三方合作之用)共享出来,你将从中收获如下: 
1、关于TreeView的一些操作及TreeHelper 
2、DataSet及相关知识与状态 
3、其它一些啦 

有了以上基础的朋友,可以不用关心啦... 

祝大家工作快乐!!! 


长江支流
QQ:150439795
TEL:13651078179
http://blog.csdn.net/flygoldfish
------解决方案--------------------
http://www.cnblogs.com/cxd4321/archive/2009/01/12/1374140.html
------解决方案--------------------
兄弟们帮在技术群里多发一下啊:

http://stockstar.com/
证券之星,上海,世纪大道
招.Net Web开发程序员20人,本科。 
5k以下主要看态度,5k以上的主要看高性能大并发经验,10k以上要看运气了。 
 简历发至
 yg.pan@stockstar.com