企业网站权限设计实现:概述

做了较长时间的企业网站,在权限管理方面总是不太顺手,没有形成太好的思路,偶尔看了《电脑编程技巧与维护》2007/2期是的一篇文章《权限管理设计方法》,很受启发,终于将我多年的对权限管理设计的思路给理清了。该文章没有给出完整的代码,对于实现方式也存在各种不同方法,于是决定自己做一套试试,经过断断续续的开发、修改、升级(新技术出来太快了对我来说),现在基本有了一个比较成型的东西。自我感觉还不错,实现了我所需要的大部分功能,还有部分细节需要进一步完善。
现在对整个设计思路、实现方法做一个总结,供各位讨论,并请提出宝贵意见。
一、设计平台与运行环境
设计平台:Windows XP Pro + VS2008+MS SQL 2005
运行环境:IIS6 + .net 3.5 sp1
二、功能概述
1、用户管理;
2、部门管理:支持无限级的部门管理,如XX公司-XX分公司-XX分公司部门1-XX分公司部门1科室1....。部门录入后,在用户管理中可以通过树形选择方式设置用户所在部门。
3、角色管理:支持不限数量的自定义角色管理。
4、模块管理:支持模块动态管理,模块管理指信息录入下的栏目设置,支持无限级栏目管理。
5、用户权限管理:将用户分配到角色中。一个用户可以属于多个角色,其权限为多个角色权限的集合。
6、角色模块管理:自定义角色管理。即某个角色能够访问哪些模块。
7、信息录入:技术文本、图片、视频(须先上传到服务器指定目录)等录入。不支持所见即所得。(版本一技术所见即所得,但实现使用效果不佳,安全性不能保证,故取消)。支持专题功能,当一个栏目是专题时,除能够在该栏目中录入新闻外,还可以从其它栏目引入新闻(非常适合经常开展各种活动的企业使用,如安全生产可以是一个专题,该专题中的部分或全部内容可以从其它历史信息中提取)
8、信息审核:信息录入后须经过审核可显示。
9、日志:所有操作记录均写入日志数据库。
10、信息统计。
三、设计思路
实际上,信息录入与审核等功能还比较好实现,比较困难的部分是权限管理的设计。
权限管理借鉴了Windows的用户角色管理思路,数据库中涉及权限管理的共有5个表。
其中基础表三个:Users,Role,Module,分别代表用户表,角色表和模块表。
为了表达这三者之间的关系,建立两个关系表:UserRole和RoleModule,分别代表用户与角色关系、角色与模块关系。
除此之外,建了一个部门表Dept用于存放用户部门。
权限管理的具体思路是:先建立用户,系统管理员可以对其进行管理,将用户分配到不同的用户组(角色),也就是根据需要对其权限进行定制。不同的用户组(角色)可以访问不同的模块,每个模块又和对应页面相联系。这样,就可以由管理员来任意定制用户的访问权限了。
posted @ 2009-04-23 09:12  string.yin  阅读(1873)  评论(7编辑  收藏  举报