应用程序权限设计.doc_第1页
应用程序权限设计.doc_第2页
应用程序权限设计.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我们在开发系统的时候 经常会遇到系统需要权限控制 而权限的控制程度不同有不同的设计 方案 1 基于角色的权限设计 这种方案是最常见也是比较简单的方案 不过通常有这种设计已经够了 所以微软就设计 出这种方案的通用做法 这种方案对于每一个操作不做控制 只是在程序中根据角色对是 否具有操作的权限进行控制 这里我们就不做详述 2 基于操作的权限设计 这种模式下每一个操作都在数据库中有记录 用户是否拥有该操作的权限也在数据库中有 记录 结构如下 但是如果直接使用上面的设计 会导致数据库中的 UserAction 这张表数据量非常大 所以 我们需要进一步设计提高效率 请看方案 3 3 基于角色和操作的权限设计 如上图所示 我们在添加了 Role 和 RoleACTION 表 这样子就可以减少 USERACTION 中的 记录 并且使设计更灵活一点 但是这种方案在用户需求的考验之下也可能显得不够灵活够用 例如当用户要求临时给某 位普通员工某操作权限时 我们就需要新增加一种新的用户角色 但是这种用户角色是不 必要的 因为它只是一种临时的角色 如果添加一种角色还需要在收回此普通员工权限时 删除此角色 我们需要设计一种更合适的结构来满足用户对权限设置的要求 4 2 3 组合的权限设计 其结构如下 我们可以看到在上图中添加了 UserAction 表 使用此表来添加特殊用户的权限 改表中有 一个字段 HasPermission 可以决定用户是否有某种操作的权限 改表中记录的权限的优先级 要高于 UserRole 中记录的用户权限 这样在应用程序中我们就需要通过 UserRole 和 UserAction 两张表中的记录判断权限 到这儿呢并不算完 有可能用户还会给出这样的需求 对于某一种 action 所操作的对象某 一些记录会有权限 而对于其他的记录没有权限 比如说一个内容管理系统 对于某一些 频道某个用户有修改的权限 而对于另外一些频道没有修改的权限 这时候我们需要设计 更复杂的权限机制 5 对于同一种实体 资源 用户可以对一部分记录有权限 而对于另外一些记录没有权限的 权限设计 对于这样的需求我们就需要对每一种不同的资源创建一张权限表 在上图中对 Content 和 Channel 两种资源分别创建了 UserActionContent 和 UserActionChannel 表用来定义用户对某 条记录是否有权限 这种设计是可以满足用户需求的但是不是很经济 UserActionChannel 和 UserActionContent 中的记录会很多 而在实际的应用中并非需要记录所有的记录的权限 信息 有时候可能只是一种规则 比如说对于根 Channel 什么级别的人有权限 这时候呢 我们就可以定义些规则来判断用户权限 下面就是这种设计 6 涉及资源 权限和规则的权限设计 在这种设计下角色的概念

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论