enum 权限

   [FlagsAttribute] 
    
public   enum  RoleType
    {
        未登录 
=   0 ,
        普通用户 
=   1 ,
        锁定
= 2 ,
        旅行社用户 
=   32 ,
        旅行社创建者 
=   64 ,
        外包用户 
=   128 ,
        编辑 
=   512 ,
        管理员 
=   1024
    }
    
public   class  Role
    {
        
private  RoleType _RoleType  =  RoleType.未登录;
        
///   <summary>
        
///  初始化
        
///   </summary>
        
///   <param name="role"></param>
         public  Role( object  role)
        {
            
if  (role  !=   null )
                _RoleType 
=  (RoleType) role;
        }
        
///   <summary>
        
///  当前类封装的roleType
        
///   </summary>
         public  RoleType RoleType
        {
            
get  {  return  _RoleType; }
            
set  { _RoleType  =  value; }
        }
        
///   <summary>
        
///  当前的role对象是否包含某个TYPE
        
///   </summary>
        
///   <param name="rt"></param>
        
///   <returns></returns>
         public   bool  Contains(RoleType rt)
        {
            
return  (_RoleType  &  rt)  ==  rt;
        }

        
public   bool  Contains( params  RoleType[] rt) {
            
return   this .Contains(rt.ToList());
        }
        
///   <summary>
        
///  当前的role对象是否包含某些TYPE
        
///   </summary>
        
///   <param name="rts"></param>
        
///   <returns></returns>
         public   bool  Contains(IEnumerable < RoleType >  rts)
        {
            
bool  ret  =   false ;
            
foreach  (RoleType rt  in  rts)
                
if  ( this .Contains(rt))
                {
                    ret 
=   true ;
                    
break ;
                }
            
return  ret;
        }
        
///   <summary>
        
///  为当前对象添加权限
        
///   </summary>
        
///   <param name="rt"></param>
        
///   <returns></returns>
         public   void  Add(RoleType rt)
        {
             RoleType 
|=  rt;
        }
        
///   <summary>
        
///  当前用户是否登录了
        
///   </summary>
         public   bool  IsLogin
        {
            
get
            {
                
return  GetRoleTypeList.Count  !=   0 ;
            }
        }

        
///   <summary>
        
///  列表,当前所有权限
        
///   </summary>
         public  List < String >  GetRoleTypeList
        {
            
get
            {
                var lis 
=
                    Enum.GetValues(
typeof  (RoleType));
                var list 
=   new  List < string > ();
                
foreach ( object  o  in  lis)
                {
                    var r 
=  (RoleType) o;
                    
if  (Contains(r)  &&  r  !=  RoleType.未登录)
                        list.Add(r.ToString());
                }
                
return  list;

            }
        }

    }

 

使用方法如下

 

存数据库int字段

 取后存Session["status"]中,进行如下属性的访问即可(这个存在于CHUser类中)

 

        /// <summary>
        /// 获取当前用户状态
        /// </summary>
        static public Role Status {
            get {
                int status = 0;
                if (HttpContext.Current.Session["status"] != null)
                    int.TryParse(HttpContext.Current.Session["status"].ToString(), out status);
                return new Role(status);
            }

        }

 

 <%
    if (CHUser.Status.Contains(RoleType.管理员))
    {
    %>
    <li><%=Html.ActionLink("用户管理", "UserManage", "Admin")%></li>
    <%
    }

%>

判断时



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值