权限设计的艺术

转载一位牛人

http://blog.csdn.net/treesky/archive/2010/08/15/5812962.aspx

 

个人非常认同其中的 以2进制的形式进行权限赋值与判断

权限a 为 1

权限b 为 2

权限c  为 4

权限d 为  8

 

一个人拥有ac两个权限的话 就是 1+4=5,2进制表示就是101

要验证他有没有b的权限就是2&5=0  &按位与 就是 10&101  =000这就表明他没有b的权限

要验证他有没有c的权限就是4&5=4   100&101=100 这就表明他有c的权限

 

&按位与,|按位或,^按位异或,我们其实可以把1当成true,0当成false这样 1|0=1  1^0=1  1&0=0了和逻辑与一样的其实。

 

这是非常好的权限设计,当要增加新的权限时只需要增加新的2的几次方就行了.扩展很方便。

权限判断也很方便

所需权限&用户权限=所需权限  才能通过验证.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值