用二进制位移实现繁琐权限的划分

1,优点:计算机计算快,性能高。特别是对于一个权限划分比较繁琐的情况,每个页面都有好多权限(增删改查上传下载等),其他方法比对时较慢。

2,二进制位移:初始数据:00 00 00 01;一次位移:00 00 00 10;二次位移:00 00 01 00;三次位移:00 00 10 00;依次类推。

3,定义枚举:通过“二进制位移”自动实现:增00 00 00 01;删00 00 00 10;改00 00 01 00;查00 00 10 00。

4,计算:当用户勾选“增”和“查”时。增00 00 00 01;查00 00 10 00,将两者求或得:00 00 10 01,将00 00 10 01转换为十进制存储于数据库。

6,当用户登录到系统中时,进行比对,判断是否有这项权限。从数据库中取出来的数据转换为二进制后是:00 00 10 01。

7,第一次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,首先与“增”(00 00 00 01)进行比对,结果是“true”,说明有这个权限。

8,第二次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“删”(00 00 01 00)进行比对,结果是“false”,说明无这个权限。

9,第三次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“改”(00 00 00 10)进行比对,结果是“false”,说明无这个权限。

10,第四次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“删”(00 00 00 01)进行比对,结果是“true”,说明有这个权限。

11,依次类推... ...

12,结果所具有的权限就是:有“增”、无“删”、无“改”、有“查”、... ...

posted @ 2013-08-20 11:12  namehwh  阅读(828)  评论(1编辑  收藏  举报