巧妙运用二进制验证权限2014-04-12 博客园 初行在权限分配中有多个权限级别,不同用户分别有多个不同的权限。论坛的权限:查看、发帖、投票、搜索用户的权限:用户A:查看、发帖用户B:查看用户C:查看、发帖、投票、搜索分析:有四种不同的权限级别,总共2^4种权限分配方式。像这样权限等级划分和不同级别用户的权限分配采用二进制方式权限分配验证方式是最好的选择。 即每一个操作权限都用一个二进制数表示(1、10、100、1000)。总共的权限种类有2^n种,n即代表权 限类别。在C#中long类型有64位,所以总共有64类权限,2^64种权限分配方式。权限的分配、删除、查 看都采用二进制运算实现。

long userrolevalue;//用户的操作权限long oprolevalue;//一个操作的权限1.权限的分配(或运算)userrolevalue = userrolevalue | oprolevalue

(00001110)2=(00000010)2|(00000100)2|(00001000)2