导航

简单的权限管理设计

Posted on 2008-07-29 14:05  pegger  阅读(301)  评论(0编辑  收藏  举报

原理: 控制一个整数的二进制的每一位,当它为1时,我们认为他拥有权限,当为0时,认为他无权限,就这么简单。

public enum Permission
{
     新建 
= 1,
     删除 
= 2,
     修改 
= 4,
    保留权限1 
= 8,
    保留权限2 
= 16,
    保留权限3 
= 32,
    保留权限4 
= 64,
    保留权限5 
= 128
    
}

public class PSolution
{
    
/**//// <summary>
    
/// 原始权限
    
/// </summary>

    int pNum;
    
public int PNum
    
{
        
get return pNum; }
        
set { pNum = value; }
    }


    
public PSolution(int a)
    
{
        
if (a < 0 || a > 255)
        
{
            
throw new ArgumentException("参数值必须大于0且小于255");
        }


        pNum 
= a;
    }


    
/**//// <summary>
    
/// 清除指定的权限
    
/// </summary>

    public void cleanBit(Permission p)
    
{
        pNum 
&= ~((int)p);
    }


    
/**//// <summary>
    
/// 设置指定的权限
    
/// </summary>

    public void setBit(Permission p)
    
{
        pNum 
|= ((int)p);
    }


    
/**//// <summary>
    
/// 检查是否拥有指定的权限
    
/// </summary>

    public bool checkBit(Permission p)
    
{
        
int bTemp = pNum >> Convert.ToInt16(System.Math.Log((double)p,2d));
        
if ((bTemp & 0x01== 1)
            
return true;

        
return false;
    }

}

河南恒友科贸有限公司 
电话 :0371-53733453    传真:0371-65388972
地址:郑州市郑花路8号 E-mail:hengyousoft@QQ.com