基于web信息管理系统的权限设计分析和总结

上传人:s9****2 文档编号:493324255 上传时间:2023-10-20 格式:DOC 页数:24 大小:150KB
返回 下载 相关 举报
基于web信息管理系统的权限设计分析和总结_第1页
第1页 / 共24页
基于web信息管理系统的权限设计分析和总结_第2页
第2页 / 共24页
基于web信息管理系统的权限设计分析和总结_第3页
第3页 / 共24页
基于web信息管理系统的权限设计分析和总结_第4页
第4页 / 共24页
基于web信息管理系统的权限设计分析和总结_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于web信息管理系统的权限设计分析和总结》由会员分享,可在线阅读,更多相关《基于web信息管理系统的权限设计分析和总结(24页珍藏版)》请在金锄头文库上搜索。

1、基于web信息管理系统的权限设计分析和总结在blog中看到有人写到web权限管理的一些文章,这里把我曾经做过的一些权限管理作一下总结,欢迎拍砖。这里讨论的权限只涉及到信息管理系统里面的权限管理,超出此范围的权限管理暂不涉及。1、权限的应用对象上面我们已经定义了权限的范围,就是信息系统管理里面的表单操作,那么权限的应用对象就是表单,更进一步说,就是表达表单内容的web管理页面。2、权限的分类一个页面的权限范围分为以下几种,也可以叫做基本权限单位。l 操作权限:操作权限是一种页面级别的权限,也可以叫做页面权限。包括以下几种n 新增n 修改n 删除n 查询在此基础上还可以进行更加详细的一些分类,比如

2、查看他人记录的权限,修改他人记录的权限等。这部分也可以使用下面的记录权限来实现。l 按钮权限:针对页面上按钮的权限管理,包括n 是否可见n 是否可用有时候,我们可以把按钮权限看作为字段权限。l 字段权限:字段在页面的不同状态(新增,修改,查询)下面的各种状态管理。包括n 是否可见n 是否可修改l 记录权限:记录权限是指用户对某些记录的查看和修改权限。比如客户关系管理系统中,不同界别的系统用户可以看到不同的记录,例如上司可以看他所有下级员工的客户列表等。3、权限的实现模型上面的权限分类大概对涉及到页面元素的权限进行了一个比较全面的概括。另外一个问题就是权限管理的实现模型。在大部分的系统中都是用的

3、基于角色控制模型的权限管理。在这样的系统中,创建一系列的角色,然后把基本权限单位分配给这些角色,再把角色分配给用户,这样用户登录系统后,就根据当前用户所拥有的角色可以定位出权限。在针对信息管理系统中,权限模型有自己的特色,除了角色的概念以外,还有表单权限的概面。第一节里面所讨论的各种权限基本单位不但可以应用到角色上,也可以应用到表单上。对于应用到表单上的基本权限单位,我们叫做表单的固有权限属性(静态权限)。对于应用到角色上的基本权限单位,我们叫做角色权限属性(动态权限)。用下图来表示:根据上面的模型,一个用户登录到系统中后,得到某一个表单的权限就和这个表单的固有权限属性和这样用户所拥有的角色有

4、关。4、权限的计算方式用户登录后对一个表单进行操作,静态权限只有一个,即表单本身的权限属性,动态权限可以有多个,即用户可以同时属于多个角色,这些角色在这个表单上都有不同的动态权限。用户对这个表单所能进行的操作是由这个动态权限和静态权限的综合作用决定的。进行权限判断分为两个步骤:1、动态权限组合:根据用户所属的角色的权限分析得到最终的动态权限集合。2、动态权限和静态权限的组合:利用得到的动态权限集合再和静态权限进行综合分析得到用户的最终权限。在动态权限和动态权限进行组合判断,以及动态权限和静态权限进行组合判断的时候,根据权限类型的不同,使用不同的组合判断方法对于 操作权限,分为两种组合方法:l

5、或操作:或操作认为,两个层次的权限单位进行比较,只要其中一个权限单位认为“可以做”,那么组合权限结果就是“可以做”。例如对于“增加”这个操作权限,如果角色A设置为可以增加,角色B设置为不可以增加,那么综合的结果就是 可以进行 “增加”l 与操作:与操作认为,两个层次的权限单位进行比较,只要其中一个权限单位认为“不可以做”,那么组合权限结果就是“不可以做”。例如: 对于“增加”这个操作权限,如果角色A设置为可以增加,角色B设置为不可以增加,那么综合的结果就是 不可以进行 “增加”对于字段权限 和 记录权限 只有一种组合方法:l 权限并集:也就是说组合的结果是这两种层级的权限单位控制范围的一个相交

6、的结果。例如:对于角色A,他在表单F上的的只读字段为(a,b,c,d),角色B在表单F上的只读字段为(c,d,e,f),那么角色A和角色表的相交结果就是只读字段集合(a,b,c,d,e,f)。下面两张表显示了不同的权限层次,不同的权限类型在进行权限比较时选择不同的比较方法:不同的角色之间进行权限比较:角色B-操作权限角色B-字段权限角色B-记录权限角色A-操作权限或操作角色A-字段权限并集角色A-记录权限并集当有多个角色权限是,列入有角色A,B,C,D,先对A,B做计算,然后把计算结果和C进行计算,依次类推。动态权限和静态权限进行权限比较:动态权限-操作权限动态权限-字段权限动态权限-记录权限

7、静态权限-操作权限与操作静态权限-字段权限并集静态权限-记录权限交集看过基于web信息管理系统的权限设计分析和总结(理论)的一些网友问道,能不能给出这个权限模型的实现,其实模型是一个解决给定问题的理论指导,具体的实现可以有多种方式,可能根据您的项目的实际情况有所不同,这里给出一个是基于sql server数据库的实现。这里提到的只是一些基本的权限信息,您当然可以扩展更多的权限信息。首先需要定义的是基本权限单位的数据库模型,用下表来表示:(这个表不是独立存在的,而是合并到表单信息表 和 角色权限表中)权限类型字段名称类型意义操作权限AddActionbit新增ModifyActionbit修改D

8、eleteActionbit删除SearchActionbit查询字段权限(字段之间以逗号 , 分割)ReadOnlyColumnsOnAddNvarchar(1000)只读字段(新增)HiddenColumnsOnAddNvarchar(1000)隐藏字段(新增)ReadOnlyColumnsOnModifyNvarchar(1000)只读字段(修改)HiddenColumnsOnModifyNvarchar(1000)隐藏字段(修改)HiddenColumnsOnSearchNvarchar(1000)隐藏字段(查询)纪录权限(一段表示权限范围的语句,在本实现中,就是一个sql语句的片断)

9、ReadOnlyRecordsNvarchar(1000)只读纪录HiddenRecordsNvarchar(1000)隐藏纪录接下来是表单信息表,表单信息表有一些基本的表单信息,例如表单名称等,同时表单信息表也拥有以上的基本权限数据,这些权限信息构成了表单的固有权限属性(静态权限),一个简单的表单信息表如下所示:表单信息表:Forms字段名称类型意义FormIDNvarchar(100)表单IDFormNameNvarchar(100)表单名称AddActionbit新增表单的固有权限属性(静态权限)ModifyActionbit修改DeleteActionbit删除SearchAction

10、bit查询ReadOnlyColumnsOnAddNvarchar(1000)只读字段(新增)HiddenColumnsOnAddNvarchar(1000)隐藏字段(新增)ReadOnlyColumnsOnModifyNvarchar(1000)只读字段(修改)HiddenColumnsOnModifyNvarchar(1000)隐藏字段(修改)HiddenColumnsOnSearchNvarchar(1000)隐藏字段(查询)ReadOnlyRecordsNvarchar(1000)只读纪录HiddenRecordsNvarchar(1000)隐藏纪录下面就是角色表了,角色表相当简单,只

11、包含一个角色名称就可以了:角色表:Roles字段名称类型意义RoleIDNvarchar(100)角色IDRoleNameNvarchar(100)角色名称定义好了角色表,接下来就是角色权限了,就是角色在每个表单上的权限表现形式,当前这个表就需要跟角色以及表单有关了,具体的结果如下:角色权限表: RolePurview字段名称类型意义RolePurviewIDNvarchar(100)主键FormIDNvarchar(100)表单ID外键,关联到表单信息表的FormIDRoleIDNvarchar(100)角色ID外键,关联到角色表的RoleIDAddActionbit新增表单的角色权限属性(

12、动态权限)ModifyActionbit修改DeleteActionbit删除SearchActionbit查询ReadOnlyColumnsOnAddNvarchar(1000)只读字段(新增)HiddenColumnsOnAddNvarchar(1000)隐藏字段(新增)ReadOnlyColumnsOnModifyNvarchar(1000)只读字段(修改)HiddenColumnsOnModifyNvarchar(1000)隐藏字段(修改)HiddenColumnsOnSearchNvarchar(1000)隐藏字段(查询)ReadOnlyRecordsNvarchar(1000)只读

13、纪录HiddenRecordsNvarchar(1000)隐藏纪录当然要完成整个模型,还需要用户信息表以及用户角色表用户信息表:Users字段名称类型意义UserIDNvarchar(100)用户IDUserNameNvarchar(100)用户名称用户角色表:UserInRoles字段名称类型意义UserInRoleIDNvarchar(100)主键UserIDNvarchar(100)用户ID外键,关联到用户表的UserIDRoleIDNvarchar(100)角色ID外键,关联到角色表的RoleID到目前为止,我们完成这个模型所需要的表都出场了,下面的图表示了他们之间的关系:在下节中将实现具体的权限的计算公式。首先需要一个存储过程来实现计算用户在表单上的权限,这个存储过程接受两个参数,用户ID和表单ID,在这个存储过程里面使用一条sql语句来计算用户在表单上的权限,如下所示: Code- =-计算用户对表单的权限- =create PROCEDURE dbo.sp_GetUserPurveiewOnMenu userID nvarchar(100) ,-用户ID formID nvarchar

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号