软件应用种经常需要管理多用户的操作权限。权限的管理是通用性开发,不应该由系统应用功能的改变而进行重复开发,应用组件模型建立通用控件,实现功能的封装,从而达到多用户操作权限管理的组件化.以ActiveX控件形式发布组件,为开发者提供成熟的管理控件.
通用权限管理控件模型
控件特点:
1、 提丰富的API接口,通过这些接口可以完成复杂的用户管理,角色管理、权限判定工作。
2、 在应用程序设计期间建立框架数据库,权限功能划分
3、 支持多重继承方式管理角色和用户的权限关系。类似于Window2000的用户角色管理方式
4、 ADO数据库连接(Windows系统自带),不用额外配置数据库驱动
5、 支持常用的数据库系统(Sqlserver,Oracle,Access)
6、 除支持功能权限管理外还支持数据对象使用权限管理,即用户在有相同操作权限下可能具有不同的数据
访问权限。如User1对于Table1有Select权限,User2对于Table1有Select、Update权限
7、 支持简体中文和英文2种界面语言
8、 用户口令采用DES加密算法
权限管理模型:权限管理模型类似于操作系统的用户管理模型,支持多重继承关系
权限管理(操作权限、数据对象权限)基本原则:
1、角色是特殊类型的用户
2、所有用户权限关系均继承与Publics角色
3、用户的权限=自身的权限+隶属于所有角色的权限
操作权限管理控件内部基本对象关系简述:
Frame对象负责维护整个控件的业务逻辑关系,通过Open方法激活Frame,Frame初始化系统所有对象,并建立
用户和功能操作、数据对象的权限关系。
每个User对象都维护一些属性列表,如果用户是角色类型则RoleList则保存用户隶属于的角色用户列表,
MemberList保存自己的成员列表,FunList保存自己的可用功能操作列表,ObjectList保存自己的可用数据
对象列表.HasFun方法判定用户是否有指定的功能操作(包括继承角色的功能操作),HasRole方法判定用户是否隶属于
指定的角色,HasMember方法判定用户是否有指定的成员,HasObject方法判定用户是否有指定的数据对象访问权
限.(包括继承角色的数据对象)
Open方法实现流程:1、依据用户表建立系统用户列表,列表每个成员为User对象
2、依据功能表建立系统功能列表,列表每个成员为Fun对象
3、依据用户角色关系表填充User对象的RoleList和MemberList,使每个User
对象知道自己有多少个隶属于的角色和成员
4、依据用户功能关系表和用户数据对象关系表填充FunList和ObjectList,使
每个User对象知道自己可用的功能和自己可操作的数据对象
操作权限判定流程:1、在用户的FunList里查找可用的功能,如果有表明用户可以操作这个功能,否则要遍历
RoleList,调用每个角色的HasFun方法,查看所有隶属于的角色是否有功能权限。
控件有严格的逻辑检查功能,可以避免循环授权的错误。
系统数据库表结构:
综述:控件的功能基本涵盖了权限管理相关的所有应用,可以适用于各类复杂的多用户权限管理工作。包括大型的管理信息系统,一般的应用软件。控件以ActiveX形式发布,不依赖于任何开发语言。开发人员只需在设计期间利用控件建立好功能数据,在需要权限验证的功能入口处加入权限判定代码,就可完成复杂的权限管理工作,大大解放了开发人员的精力。
控件功能强大,Windows操作系统模式的多用户管理,能够胜任复杂的多用户权限管理工作。控件是免费的(20用户),希望能够得到大力推广,更希望能够得到一些软件公司的支持,使其能够商业化,为其他软件公司做定制的权限管理组件,或者开发Web方式的权限管理组件。如果需要完全版或合作方面事宜请通过E_Mail或手机联系。
控件可通过如下的任何一种方式获取,内容包括控件,使用说明,示例代码(VC,VB,Delphi)
下载地址 http://fwtredsoft.googlepages.com/
E_Mail:Fwt_RedSoft@163.com
手机:13530081456 樊伟涛
操作权限管理控件一些功能窗口图片
登录窗口
角色管理窗口
用户管理窗口
功能管理窗口