全能的权限管理框架(一)——基础表的建立与说明
2012-12-06 18:01
155 查看
不管是做网页,还是做C/S结构,对权限的控制都占有很大的重量。
下面看一下我是怎样来对网页的权限进行控制的。对于数据库的建立,我参照的小崔的一篇博客——Asp.net访问权限管理,但他只从思想上来说了一下,这次,我从思想到行动上,都说明一下。
建表上,我建立了这样的表:用户信息表、组表、模块表和页面表(只针对权限管理的部分)、页面权限表
在用户信息表中,有这样 的字段:用户名、密码、组号(外键)
组表中是这样的一个情况:组号,组名,模块号(非外键的外键)。这里说明一下什么是非外键的外键,就是这个里面的东西确实是模块表中的模块号,但是要无法根据这个查出来,因为我将这个组可以访问的模块ID,全都存到了这一个字段里。例如:模块表中有ID分别为1、2、3、4的模块,其中一个组都可以访问,那么在这个组里是这样存的:“1,2,3,4,”。
模块表和页面表比较简单,模块表中只有ID和名字,页面表中有ID、名字,URL。
那么权限表中应该有什么呢?你是否已经发现,现在只对组对应的模块进行了赋权,对于页面,还没有进行赋权呢?对,这个表就是对每个组对应模块下的页面进行赋权。字段相信你已经猜出来了吧,就是组号、模块号,页面号(同组表中的模块号)。
说一下这样的好处,一个网页的导航,我们现在就可以根据不同的权限分配不同的导航,对于不同权限,所看到相应模块下的内容,我们也可以进行设置。
说了这么多了,你有没有发现,到现在为止,你都没看出来我要做什么?这就是这个权限管理的厉害之处,它不止可以用到我们这个系统,对于任何一个和我们的网页结构相似的也是可以用的。
可能只说,有点乏味,我现在手动写一下每个里面的字段吧。
用户表:
用户名 密码 组号
123 123 1
456 456 2
组表
ID 名称 模块号
1 admin 1,2,3,4,
2 operator 1,2,
模块
ID 名称
1 搜索
2 查看信息
3 随便
4 用户管理
页面(这个比较多,我就不写URL和模块了了哈)
ID 名称
1 CSDN
2 搜狐
3 搜狗
4 迅雷
5 百度
页面权限(这个页面号有点别扭,有不明白就回复哈)
组号 模块号 页面号
1 1 1,2,3,
1 2 2,3,
1 3 4,3,2,
1 4 1,2,3,4,
2 1 1,2,
2 2 2,3,
2 3 3,4
这样,每个人就只可以看到属于自己的那部分的页面了,不过为了安全,在访问的时候,还是应该判断这个用户是否对此页面具有权限访问。
其实到这里,很多人都可以看明白,我看了他的博客,我也学的很好,可以就是在实现上面感觉有点摸不着头脑。
相信同样觉得这个权限管理万能的你是不是也想知道究竟应该怎样去把这个用到正在做的程序中去呢?那么就期待我的下篇博客吧——实现部分。
下面看一下我是怎样来对网页的权限进行控制的。对于数据库的建立,我参照的小崔的一篇博客——Asp.net访问权限管理,但他只从思想上来说了一下,这次,我从思想到行动上,都说明一下。
建表上,我建立了这样的表:用户信息表、组表、模块表和页面表(只针对权限管理的部分)、页面权限表
在用户信息表中,有这样 的字段:用户名、密码、组号(外键)
组表中是这样的一个情况:组号,组名,模块号(非外键的外键)。这里说明一下什么是非外键的外键,就是这个里面的东西确实是模块表中的模块号,但是要无法根据这个查出来,因为我将这个组可以访问的模块ID,全都存到了这一个字段里。例如:模块表中有ID分别为1、2、3、4的模块,其中一个组都可以访问,那么在这个组里是这样存的:“1,2,3,4,”。
模块表和页面表比较简单,模块表中只有ID和名字,页面表中有ID、名字,URL。
那么权限表中应该有什么呢?你是否已经发现,现在只对组对应的模块进行了赋权,对于页面,还没有进行赋权呢?对,这个表就是对每个组对应模块下的页面进行赋权。字段相信你已经猜出来了吧,就是组号、模块号,页面号(同组表中的模块号)。
说一下这样的好处,一个网页的导航,我们现在就可以根据不同的权限分配不同的导航,对于不同权限,所看到相应模块下的内容,我们也可以进行设置。
说了这么多了,你有没有发现,到现在为止,你都没看出来我要做什么?这就是这个权限管理的厉害之处,它不止可以用到我们这个系统,对于任何一个和我们的网页结构相似的也是可以用的。
可能只说,有点乏味,我现在手动写一下每个里面的字段吧。
用户表:
用户名 密码 组号
123 123 1
456 456 2
组表
ID 名称 模块号
1 admin 1,2,3,4,
2 operator 1,2,
模块
ID 名称
1 搜索
2 查看信息
3 随便
4 用户管理
页面(这个比较多,我就不写URL和模块了了哈)
ID 名称
1 CSDN
2 搜狐
3 搜狗
4 迅雷
5 百度
页面权限(这个页面号有点别扭,有不明白就回复哈)
组号 模块号 页面号
1 1 1,2,3,
1 2 2,3,
1 3 4,3,2,
1 4 1,2,3,4,
2 1 1,2,
2 2 2,3,
2 3 3,4
这样,每个人就只可以看到属于自己的那部分的页面了,不过为了安全,在访问的时候,还是应该判断这个用户是否对此页面具有权限访问。
其实到这里,很多人都可以看明白,我看了他的博客,我也学的很好,可以就是在实现上面感觉有点摸不着头脑。
相信同样觉得这个权限管理万能的你是不是也想知道究竟应该怎样去把这个用到正在做的程序中去呢?那么就期待我的下篇博客吧——实现部分。
相关文章推荐
- 全能的权限管理框架(一)——基础表的建立与说明
- 第一章:权限管理设计基础——深入浅出学Shiro细粒度权限开发框架
- 框架学习--shiro权限管理框架基础
- Flex和J2EE的信息管理系统基础框架Pomer说明
- Linux基础--权限管理
- linux基础命令之文件权限的管理及ACL的扩展
- Oracle常用基础知识详解(用户、权限、角色管理 )
- 建立知识结构是个人知识管理的基础活动
- 完善《通用权限管理组件使用说明书V3.0.doc》,修正错别字、语句通顺、条理清晰化、能拿得出手,愿支付辛苦费
- Linux基础入门及系统管理01-Linux操作系统权限及权限管理12
- 权限管理数据表设计说明
- Apache Shiro权限管理框架
- RabbtiMQ配置说明:下载、安装、启动、权限控制、角色说明和管理后台
- gitolite部署的带有权限管理的git服务器使用说明
- linux基础,文件、目录管理,权限、chown、umask
- 零基础到CS开发高手通用权限管理系统全程实录
- Yii框架中使用SRBAC作为权限管理模块时遇到的问题
- 新开发的体重管理项目----用纯php模仿yii2框架建立的
- linux基础(10)--文件普通权限与特殊权限管理--RHEL6.5
- 拾遗:Linux 用户及权限管理基础