Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

web编程中简单的权限管理

Posted on 2008-08-13 15:37  analyzer  阅读(439)  评论(0编辑  收藏  举报
这里说到的权限管理办法是一个普遍采用的方法,主要是使用到"位运行符"操作,& 位与运算符、| 位或运行符。参与运算的如果是10进制数,则会被转换至2进制数参与运算,然后计算结果会再转换为10进制数输出。

  它的权限值是这样的

  2^0=1,相应2进数为"0001"(在这里^我表示成"次方",即:2的0次方,下同)

  2^1=2,相应2进数为"0010"

  2^2=4,相应2进数为"0100"

  2^3=8,相应2进数为"1000"

  要判断一个数在某些数范围内就可以使用 & 运算符(数值从上面的表中得来)

  如:7=4|2|1 (你也可以简单理解成7=4+2+1)

  用 & 来操作,可以知道7&4、7&2、7&1都是真的,而如果7&8则是假的

  &、| 不熟悉的就要去查查手册,看看是怎么用的了

  下面来看例子吧:

 

 

Code

 

 

简单的说,就是用2的n次幂组成权限值的集合,如1、2、4、8、16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,

5=1+4。如果要从数据库检索包含某几种权限的用户,则先把这几种权限值相加,假设和为k,然后select *

from table where 1 and 用户权限值 = 'k';如果要判断某用户有哪些权限,则取出其权限值k,分别用

k&1,K&2,K&4,k&16...,如果为真,则表示有值等于“&”右边整数的权限,例如,如果k&4为真,则此用户有权

限表中值等于4的权限

我要啦免费统计