权限设计的艺术

来源:互联网 发布:淘宝logo头像免费制作 编辑:程序博客网 时间:2024/06/11 08:02

转载一位牛人

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的几次方就行了.扩展很方便。

权限判断也很方便

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

原创粉丝点击