如何做系统权限设计[摘录]

最近看了别人的设计方法,大多以“整数”来表示权限值,如添加、浏览、删除和修改,分别用1、2、4、8这几个整数来代替,不过,各人的做法有所不同,举例如下:

1. 用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的权限;

通用技术方式

(权限列表)2 4 8 16 32

权限值等于权限相加。

权限值 20那么  二进制为10100

1     0    1    0  0

16   8    4    2   1       右到左依次 2的0次方  2的1次方   2的2次方   2的3次方 2的4次方 

上下相乘结果为 16 和4 

权限值 22那么  二进制为10110

1     0    1    1  0

16   8    4    2   1       右到左依次 2的0次方  2的1次方   2的2次方   2的3次方 2的4次方 

上下相乘结果为 16 ,4,2 

C#计算方式

20&16=16 如果为真表示有此权限

转载于:https://www.cnblogs.com/ddyq/archive/2011/07/06/2099008.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值