- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于用户的安全策略在B
基于用户的安全策略在B/S中的实现(1)
在用ASP,JAVASCRIPT与ORACLE开发一套税务系统的后台管理软件时,我们成功的实现了基于用户组与用户的安全策略,并在灵活性,安全性方面达到了较好的效果。我们将分存贮结构,菜单管理,权限分配,安全检查四个方面将基于用户的安全策略在B/S中的实现介绍给大家。
1??????? 存贮结构存贮结构对于本系统来说就是数据库表的结构主要由以下几个表:
A.菜单表(CDB)
字段名 字段说明 类型 备注 CDBH 菜单编号 NUMBER(3) 非空主键 FCDBH 父菜单 NUMBER(3) CDMC 菜单名称 VARCHAR2(40) QXWS 权限位数 NUMBER(2) RKLJ 入口路径 VARCHAR2(50) XGWJ 相关文件 VARCHAR(200) SFQY 是否启用 CHAR(1) DEFAULT 1 B.用户组表(YHZB)
字段名 字段说明 类型 备注 SSDW 所属单位 CHAR(4) 非空主键 YHZBH 用户组号 CHAR(4) 非空主键 YHZMC 名称 VARCHAR2(40) YHZQX 权限 CHAR(100) YHGS 用户个数 NUMBER(3) DEFAULT 0 SFQY 是否启用 CHAR(1) DEFAULT 1 C.用户表(YHB)
字段名 字段说明 类型 备注 SSDW 所属单位 CHAR(4) 非空主键 YHBH 用户编号 CHAR(4) 非空主键 SSYHZ 用户组 CHAR(4) DLM 登陆名 VARCHAR2(25) DLMM 登陆密码 VARCHAR2(40) YHXM 用户姓名 VARCHAR(20) YHQX 用户权限 CHAR(100) SFQY 是否启用 CHAR(1) DEFAULT 1 权限的存贮采取的是“位”的方式,根据系统规模,我们估计系统的菜单项不会超过100个,则定义了100位作为权限的存贮。如用户表中的用户权限字段,如果用户在第1位上不具备该权限,则第一位为“0”,反之,如果用户在第1位上有该权限,则第一位为“1”。
菜单表用来存贮系统中所有的菜单项,通过提供的编辑方法,可以对菜单表中的菜单项进行添加修改删除,从而为灵活性打下基础。根据菜单编号与父菜单编号的对应关系,根据递归原理,很容易实现多级菜单,顶级菜单的父菜单编号为0。权限位数是菜单表中比较关键的一个字段,它表明该菜单在权限上的存贮的位置,例,如果菜单编号为10的菜单项的权限位数为10的话,当某用户的权限第10位为“1”时就表明该用户有使用菜单编号为10的菜单项的权力,反之,则没有。
用户组表用来存贮系统中所有的用户组,通过提供的编辑方法,也可以对其进行灵活编辑。关键字段为用户组权限为100位的字符串,存贮该用户组的权限。
用户表用来存贮系统中所有的用户,通过提供的编辑方法,可以对其进编辑操作。关键字段为用户权限为100位的字符串,存贮该用户的权限。该权限是在建立用户时从该用户所属的用户组继承过来的,建立好用户时也可以单独对用户的权限进行修改。
其它字段将在后面的介绍中提到,在此不做详细说明。
2??????? 菜单管理
菜单管理主要包括两部分的内容,菜单项的编辑维护与根据当前登陆用户的权限进行菜单的生成。
菜单的编辑维护就是指对菜单表的维护。因为比较简单,在此不做详细说明,只是要注意以下三个问题:
第一、菜单编号与权限位数的生成。因为菜单项是可以删除的,如果新增菜单项获取编号与权限位数时只是在最大的编号上增1的话,必须会导致编码资源的浪费,特别是权限位数,只有100位,如果由于跳号而导致了编码资源的浪费,必然导致新功能模块无编码资源可用。所以,在添加新菜单项是必须要解决跳号的问题。请看以下取编号与权限位数的语句:
select min(CDBH)+1 from CDB where CDBH+1 not in(select CDBH from CDB)
select min(QXWS)+1 from CDB where QXWS+1 not in(select QXWS from CDB)
我们只要保证对于菜单维护本身的这个功能模块给它分配菜单编号为1,权限位数为1的话,就能够保证在任何情况下新增菜单项时菜单编号与权限位数不会跳号,编码资源能够得到充分利用。因为菜单维护本身这个菜单项在通常情况下是不会被删除的。
第二、入口路径是指进入本功能模块的第一个页面的连接地址,请注意路径的相对性问题。
第三、相关文件是指完成本功能模块的页面组合。一般情况下,一个菜单项下连接一个功能模块,要完成该功能模块的功能可能需要若干个ASP页面。例如,菜单项1的入口路径是../menu1
文档评论(0)