当前位置:编程学习 > C#/ASP.NET >>

100 分求比较完善的WINFORM权限管理方案!

我现在设计了一套权限管理方案
但不知道合适否,特来求下管理方案比较下,以求完善 3Q 

100分送上! --------------------编程问答-------------------- 角色表 +  用户表  + 权限表 --------------------编程问答-------------------- 看这个帖子,讨论了几种方案,呵呵
http://community.csdn.net/Expert/topic/5566/5566625.xml?temp=.4548609 --------------------编程问答-------------------- 复杂——一向是仁者见仁,智者见智的玩意~~

===========================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q66840199(请注明业务/技术咨询) 
=========================================================== --------------------编程问答-------------------- WINFORM下根据用户加载菜单哈,有这个权限就有这个菜单,没有权限就根本看不到菜单,界面当然也就掉不出来了 --------------------编程问答-------------------- 随便怎么做,要破的照样能破解。 --------------------编程问答-------------------- 所以我觉得照简单的做就行了 --------------------编程问答-------------------- 至于表结构,可以用1楼的,另外需要加一个纪录窗体名(类名)的字段,在点相应的菜单时,再实例化纪录的那个类,就OK了 --------------------编程问答-------------------- 用户+角色+功能 --------------------编程问答-------------------- 楼上的,我就是按照这种玩意搞的,我想看看有什么完善的解决方案而已
我想对照下细节 --------------------编程问答-------------------- 楼主,我是第一次做这个功能,麻烦说的详细一点,好吧?谢谢! --------------------编程问答-------------------- 用户+模块+模块权限
根据用户权限加载模块,这样的话,如果某个用户的模块权限比较少,加载的模块也比较少,整个界面的外观可能会不怎么好看
用户+模块+功能权限
所有的模块都加载,根据每个模块的具体功能权限进行功能控制
如果觉得分配到具体的用户权限很麻烦(用户比较多),可以加一个角色表,但是还是建议用户和权限建立关系,而不是角色和权限建立关系,很多时候,同一角色可能会有不同的特殊权限
--------------------编程问答-------------------- upup --------------------编程问答-------------------- 权限啊,这个东西说来复杂,其实非常简单。

用户,权限,组。
把权限分配给组,用户属于不同的组,用户可以属于多个组。用户的权限是他所属组权限的并集。

例子

公司财务经理有查看财务报表的权限,总经理没有。但是总经理兼任财务经理的时候,他就要看财务报表。 --------------------编程问答-------------------- 这是我以前的一段话,也许对你有点参考: 

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

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

思路: 

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

二、授权目标 

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

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

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

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

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

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

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

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

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

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

祝大家工作快乐!!! 


长江支流 
QQ:150439795 
TEL:13651078179 
http://blog.csdn.net/flygoldfish  --------------------编程问答--------------------
引用 11 楼 lsj_zrp 的回复:
用户+模块+模块权限
 根据用户权限加载模块,这样的话,如果某个用户的模块权限比较少,加载的模块也比较少,整个界面的外观可能会不怎么好看
 用户+模块+功能权限
 所有的模块都加载,根据每个模块的具体功能权限进行功能控制
 如果觉得分配到具体的用户权限很麻烦(用户比较多),可以加一个角色表,但是还是建议用户和权限建立关系,而不是角色和权限建立关系,很多时候,同一角色可能会有不同的特殊权限

学习 --------------------编程问答-------------------- 参考FortuneBase中的N_SEC_*表部分
参考www.cnblogs.com/mail-ricklee --------------------编程问答-------------------- 可以参考极致业务基础平台的权限管理模块,
www.jeez.com.cn --------------------编程问答-------------------- 建立角色表
权限表
模块表
权限-模块关系表 --------------------编程问答-------------------- 边做边完善,没有最好只有最适合自己的。 --------------------编程问答--------------------
引用 11 楼 lsj_zrp 的回复:
用户+模块+模块权限
根据用户权限加载模块,这样的话,如果某个用户的模块权限比较少,加载的模块也比较少,整个界面的外观可能会不怎么好看
用户+模块+功能权限
所有的模块都加载,根据每个模块的具体功能权限进行功能控制
如果觉得分配到具体的用户权限很麻烦(用户比较多),可以加一个角色表,但是还是建议用户和权限建立关系,而不是角色和权限建立关系,很多时候,同一角色可能会有不同的特殊权限

up --------------------编程问答-------------------- 用户+模块+模块权限 --------------------编程问答-------------------- 许多时候,完善,不过是程序员玩完善。真正做产品的人会跟这类自认为追求完善的楞头青程序员炒很多次才能让他懂得越是功能强大的东西越是追求尽量简单。 --------------------编程问答-------------------- 问问那些根本不懂软件开发的用户,他们复杂的业务是如何经理年累月自然而然地生出完善的权限机制吧。 --------------------编程问答-------------------- 看看基础的先!
一个codeproject上的源代码,需要注册用户才能下载

实现了用户管理、角色管理、权限管理,虽然是基于access数据库的,但是具有参考价值。
--------------------编程问答-------------------- 留名。 --------------------编程问答-------------------- 帮顶              .         
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,