身份授权论文权限分配论文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
身份授权论文权限分配论文

身份授权权限分配身份授权中权限分配优化方案探讨  摘要:主要针对发现操作进行优化,旨在通过使用特性反射和基于静态变量的单件模式,使系统自动扫描出待控制的操作,提高重用性和扩展性。   关键词:自动扫描;特性反射;单件模式;按需匹配;完全封装   1 优化目标   身份授权发生在账户登录系统后,执行操作前,旨在判断账户是否有权执行某项操作。该功能是任何系统的必要功能,常作为通用组件被封装。这里的“通用”不仅仅是指“重用”,它有着更为严格的四个目标:第一,重用性强。要求组件能够适用于任何Web系统。第二,可扩展性强。要求组件能够应对各种需求变化。第三,兼顾性能。不因为提高了安全性而降低性能。要实现这四个目标,必须充分分析现有方案,找准值得优化改善的关键点,最终提出确实可行的优化方案。   2 优化思路   权限分配为首先确定需要权限控制的操作,然后为该操作赋予相应的控制方式。例如,允许Admin角色查看系统日志。其中,操作指的是查看系统日志,相应的控制方式指的是允许Admin。针对权限分配,目前有两种方案,分别为编码型和配置型。经比较,编码型方案在操作及其控制方式方面都是常量编码,所以不管扩展操作还是扩展控制方式都要修改源代码。而配置型方式在控制方式方面采用变量配置,所以在扩展控制方式时只需修改配置文件即可。尽管如此,配置型方式仍存不足,即该方式在操作方面仍是常量编码,所以若要新增某项操作,必须修改源代码。为此,本文主张沿用配置型方案对控制方式采用变量配置的同时,对操作采用变量扫描。即自动扫描整个系统,从中发现需要权限控制的操作。具体改进如表1所示。   编码型常量编码常量编码   配置型(DB/XML)常量编码变量配置   扫描型变量扫描变量配置   比较可知,配置型在控制方式方面优于编码型。扫描型又在操作方面优于编码型。虽然扫描型在权限控制方面与配置型相同,但在发现操作方面不同。前者系统自动扫描发现需要权限控制的操作,后者则是开发人员手工录入需要权限控制的操作。   在技术方面,扫描型强调使用特性反射技术。首先在需要权限控制的操作上附加特性标记,然后根据标记反射出需要权限控制的操作。其中,为弥补反射会降低性能的不足,扫描型还强调使用基于静态变量的单件模式。因为静态变量能够使反射在系统初始化时执行,而单件模式能够使反射只执行一次,而后所有操作及控制方式存储于内存中。为客户分配权限时,系统直接从内存中获取,没有任何性能影响。综上所述,扫描型方案无论在操作扩展还是在控制方式扩展方面,都是可行的配置方案,有效增强了身份授权组件的重用性和扩展性。   3 扫描型权限分配的详细设计方案   (1)定义一个SecurityMarkAttribute特性,其中包含是否控制增加、是否控制获取、是否控制修改、是否控制删除、基本描述等字段信息。该特性用于附加在业务类上,表示要对该类实施某种操作控制。例如,要控制日志系统的增加、获取,但不控制其修改、删除。实现代码如下:   [SecurityMark(true,ture,false,false,“系统日志”)]   Class SystemLog{}。   (2)UI层定义一个web.config配置文件,其中标记需要进行安全控制的类的库文件,以便系统找到扫描的目标。例如,若SystemLog类在Library库中,必须使系统将库Library作为扫描目标,实现代码如下   。   (3)定义一个包含类名、操作类型的SecurityMember类,表示对特定类的特定操作进行控制。其中,操作类型是一个枚举,分别代表增、删、改、查等四种操作类型。例如,要控制系统日志的新增。SecurityMember类对象的类名为SystemLog,操作类型为Add。要控制系统日志的修改。SecurityMember类对象的类名为SystemLog,操作类型为Edit。   (4)最为关键的就是定义一个SecurityMemberList类(SecurityMember类的集合),其中包含CreateList()和LoadSecure()两个方法。前者根据web.config配置文件中标记的路径确定扫描目标。后者通过反射技术将扫描目标中的类的特性读取出来形成SecurityMember对象集合,即动态获取所有权限。   4 总结   在权限分配方面,对发现操作采用扫描型方案,即使用特性反射和基于静态变量的单件模式使系统自动识别所有需要权限控制的操作,在不降低性能的情况下,提高重用性和扩展性。   参考文献   [1]HUANG Qing. An Application of Code Specification Based on CSLA [J]. In:International Conference on Inf

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档