

首先,存进数据库的格式,看下: 
 代码如下:
news:3,gallery:1,users:15 
也许你经常看到存进数据库是3,1,15就这样的格式,而没有前面的news,gallery,users,为了看上去方便以及程序编写时容易查看,就加上了。news代表新闻模块,gallery代表图库模块,而users代表用户管理模块,而3,1,15: 
 代码如下:
1 = 1 = 20 
3 = 1 + 2 = 20 + 21 
15 = 1 + 2 + 4 + 8 = 20 + 21 + 22 + 23 
而这些值都可以用位或取得: 
 代码如下:
1 = Convert.ToInt32(1) 
3 = Convert.ToInt32(1|2) 
15= Convert.ToInt32(1|2|4|8) 
而1,2,4,8刚好对应权限枚举:
 代码如下:
/// <summary> 
/// 1添加,2修改,4删除,8管理列表 
/// </summary> 
public enum Perm 
{ 
add = 1, 
update = 2, 
delete = 4, 
readlist = 8 
} 
如果已经一个权限值为7,那么我们怎么知道这个用户有哪些权限呢?我们分析: 
 代码如下:
7 = 1 + 2 + 4 = 20 + 21 + 22 = 2 3 - 1 
其实这是一条数学公式,很高兴我在数学系学的东西在程序方面有所作用了: 
 代码如下:
Sigma ( 2n , n 是自然数 ) = 2n+1 - 1 ,即 1 + 2 + 4 + 8 + .... + 64 = 128 - 1 = 127 
毫无疑问的,这个是比较复杂的。 
未完,待续... 
 
 
