文件名称:
permission权限系统源码资源下载
开发工具:
文件大小: 10mb
下载次数: 0
上传时间: 2010-02-11
详细说明: 海恒的权限管理平台,可以让你的系统省去40%的开发工作量,任何一个软件系统的开发,第一步要解决的就是用户身份认证问题,以前在做C/S软件的时候,这部分考虑的比较少。但是随着进入B/S软件开发的领域,这个问题越来越突出。 本以为就我们这个公司会需要这个平台,没想到,陕西联通的一个项目,就是要改造他的权限系统,无独有偶,北京一家快递公司新开发的系统,要我们维护,结果问题也出现在权限系统中。那么到底会在权限系统中容易出现什么问题呢? 1、 系统中的权限系统,缺少组织结构管理。例如:树型的组织结构,有些系统虽然考虑了分层,但是没有考虑分多少层?组织结构是否考虑了,集团公司,全国连锁经营这种模式,实际上就是很多个独立单位的概念。很多系统遇到这个问题,就需要重新做整个系统,那太郁闷了。 2、 不同登陆用户要有不同的权利,而且要有不同的菜单,如果不能灵活的修改他们的权限,那用户需求一旦变化,不是就很郁闷了。我们的系统能够解决这个问题,我们会灵活的控制每个页面。即便是系统已经开发完成,投入运行,也可以通过修改配置文件,而实现权限的重新调整。 5.2名词解释 页面、功能点,角色,用户,单位,部门 页面(URL):在web开发中也称为URL,最朴素的权限控 制,就是基于页面的控制,即赋予访问者可以访问页面的范围,在系统记录所有的页面,配置权限时,将允许访问的页面,赋予使用者. 虽然简单,却很直接和容易理解.基于这个思想,我们将软件的URL作为权限,进行控制.在海马权限系统中,将所有的URL进行记录.但如果直接将URL作为权限,配置给使用者,是相当麻烦的.因为,一个操作功能,往往不是在一个请求内完成的,这就意味着为了让使用者有权利完成一个功能,就必须将一组URL赋予使用者,以便其访问,显然这样给系统管理和维护带来了很多不方便.因此我们定义了下面的概念---功能点. 功能点: 是一组不可分割URL,因为这组URL共同完成一个功能,因此他们是不可分开的.使用者要正常完成操作,就必须有权访问这组URL中的每一个.这样,我们将一个功能点赋予使用者,也就意味着这个使用者有访问这些URL的能力.在业务中,系统管理员不用关心到底什么权限对应哪些URL,只要将功能点赋予使用者,就可以关联URL了,完成授权过程. 角色: 角色又可以成为"岗位",它是一组功能点.很多时候,多个使用者的操作权限是相同的,例如一个部门中,大家都有察看自己邮箱的权利,都有修改自己口令和基本信息的权利,这时,就将邮箱功能点,修改口令,基本信息维护这几个功能点集合起来,建立一个角色--"操作员岗",那么,在给使用者授权时,只要将这个角色赋予使用者,该使用者就拥有了相应的功能操作权限.适合多使用者权限的管理,尤其是使用者数量众多,而且权限相同或者类似时,可以减少很多麻烦,减少出错概率.同时,在海马权限系统中,一个使用者可以同时拥有多个角色,这些角色所代表的权限,使用者可以同时拥有,是权限的并集.例如一个部门经理可以有"操作员"角色,具备基本的操作权限,同时还可以将"部门审核员"这个角色授予他,这样可以作操作部分管理功能.这样做,可以灵活的组合和配置使用者权限,适应复杂权限管理. 用户:是软件系统使用者的系统账号.每个使用者,都有自己独一无二的账号,系统通过这个账号来识别不同的使用者.账号的安全是通过使用者口令加以保护的.口令在系统中是用加密的方式进行保存,避免了通过数据库系统泄漏使用者口令的问题.(同时可以限制相同账号在系统登陆,如果发生相同账号在不同地点同时系统登陆,则将进行提示.)系统使用者是通过"用户"与"功能点"关联,完成使用者的授权,在使用者登陆系统后,也是通过"用户"来认证当前使用者的权限. 单位:是和现实生活中的单位概念相似,在系统中将根据权限要求,将"用户"划分到不同的组织内.这种划分,有两层含义,从使用者的角度出发,将"用户"划分不同组织内,可以清楚的表示出现实的组织关系,方便使用者;从软件系统的角度,根据"用户"所在的不同组织,可以清楚的界定出相同类型的数据,在不同用户下的权限控制,也就是数据的权限控制.例如,天津的销售经理不能看到北京的销售部门的合同,这种相同类型的数据,权限控制往往是通过不同单位来控制的. 更进一步,在现在的企业集团中,多个相对独立单位,同时使用系统,并且在单位之间还有一定的关系.海马权限系统中是通过"弱关联"来建立组织之间的这种复杂关系.并且可以在组织之间建立网状关系,即一个单位可以同时指定多个单位成为自己的上级单位,也可以不指定任何上级单位.这种网状关系,可以容易的表达复杂的组织之间的关系,同时也可以适应单一企业应用的简单要求. 部门:是将单位中用户进一步分类方法.与现实中的部门相似.部门是为了在单位内进一步划分用户,同时有效控制用户的数据访问.但部门之间是有关系的. 部门首先必须属于一个单位,不能独立于单位之外;其次,部门之间是有上下级关系的,有的部门是有自己的上级部门.从这里可以看出,一个单位中,这个单位和它的所有部门都组成了一个树状结构. 上面几个名词中,前两个是权限控制使用的(功能点,角色),后面两个是组织结构使用的(单位,部门),而"用户",则是两个领域联系的纽带.通过"用户",我们定义的功能访问权限,通过"用户",我们也定义了用户的数据访问范围. 海马权限系统中,控制了功能访问,没有控制数据访问,而是通过组织和部门的定义,为业务系统提供了数据权限控制的基础.在业务系统实现数据访问控制时,可以通过得到当前使用者的这些组织结构定义,再根据业务系统的数据控制要求,进行合理的数据筛选,和权限控制,来完成对业务数据的权限控制. 5.3权限控制的原理 说了这么多,也许会让您有点难以理解。 我们来说说我们的原理: 规则一:每个登陆的用户,可以有多个角色, 规则二:每个角色又可以访问多个功能点, 规则三:每个功能点又由多个页面组成。 根据这个对应关系,就可以让每个用户对应到不同的页面,如果进行细致设置,基本上可以解决了应用中的很多情况。 5.4如何进行权限控制 那么现在拿一个具体的例子说明一下: 现在大家都比较习惯用UML的USE CASE图做需求分析,上图是一个简单的例子,我们试图通过他来描述一下我们的平台是怎样工作的。 从上图,我们可以得到两个角色: 角色A:监控中心用户 角色B:车载终端用户 从上图,我们也可以得到5个功能点: 功能点1:报警 功能点2:打车载电话 功能点3:查询车辆位置 功能点4:控制车辆 功能点5:调度信息 每个功能点对应的页面很容易被确定。 根据这些资料,就可以编写一个配置文件,将配置文件放在系统指定的目录下,权限体系就发生了改变。 也许大家还有问题: 1、 怎么改变一个用户的权限呢? 答:只需要在用户管理中,修改用户的角色就行了,当角色发生变化,下次登陆本系统后,就可以用新的权限体系来限制用户的功能了。 2、 当需要新增一个角色时怎么办? 答:那么重新编写配置文件,并将配置文件放在系统指定的目录下,并重新启动系统。 5.5本平台的组织结构管理 在创建每个用户的时候我们要求每个用户属于某个单位以及这个单位的某个部门。 在系统中的组织结构如下: 单位是树型结构,可以没有上机单位,可以有下级单位,而且下级单位也可以有下级单位 每个单位内部又有树型结构的部门结构 而且,我们的权限管理系统,为每个单位还提供了管理员(系统管理员),他可以创建本单位不同于其它单位的组织结构,并为各个部门创建用户。 这样我们的权限体系就完整了。我们的每个用户在登陆本系统后,就可以确定他的所属单位和部门,并且可以确定他可以使用的各个功能。 但是也许您还有很多问题: 1、 由于权限系统复杂,所以导致进入系统后希望不同的角色进入不同的页面。 答:我们建议,对于比较复杂的系统,可以采取开发多个不同的应用程序的方法,化解将多个应用系统集成在一个系统下带来的复杂度。例如:对于某些柜面系统,可以将“后台业务系统”和“前台业务系统”分开,做为两个应用独立的系统。 另外一种选择就是使用我们提供的动态菜单,进行不同角色希望展现不同菜单的需求。 2、 如果希望某用户访问不同单位的数据怎么办,例如:某部门的人,希望他能够看到另外A部门和B部门的数据,但是,不希望看到C、D、F等部门的数据。 答:这个需求在本平台中无法解决,因为它牵扯到了用户要对数据进行再次分配权限的问题。这就需要做为开发者在此平台基础上,开发数据访问权限的分配系统。由于这点涉及到复杂的应用模型问题,所以我们暂时还不能提供对数据的权限支持。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.