权限验证的方法(补充中)
最近写个自己的网站玩可能会用到权限验证,先在网上找点方法。
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、方法一
用二进制验证
可以推荐你使用 按位与 一般符号是 & 来进行操作。
具体举例:操作1=1,操作2=2,操作3=4,操作4=8,操作5=16
为什么要使用这样的数字呢?
因为它们都是2的倍数,这样就可以保证它们转化为的二进制只占其中的一位。
具体的:1=00000001,2=00000010,4=00000100,8=00001000,16=00010000
你可以看到 每个权限其实只占了一个8位的其中的一位。
假设A具有操作1,操作3,操作4的权限,那么A的权限值为:1+4+8=13 它的二进制为00001101
现在你要判断A是否具有操作3的权限,只需要判断 13&4 是否等于 4就可以。
具体的:
00001101& 00000100
00000100
可以看到如果你有此权限的话,该值是等于操作的权限值的。
我们再来验证A是否具有操作2的权限:
00001101& 00000010
00000000
看到了吧,值等于0,表示A没有操作2的权限。
你只要再此基础上封装一下这个操作,就可以实现全线的验证了!
比如:
1 | public string validate(int powers,int power){ |
ok 大功告成!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GavenLee!
评论