实例说明asp.net中的简单角色权限控制
        
        权限控制在信息管理中属于基本功能,权限控制中其中以Window权限为模型的角色用户(也称用户组用户)模型使用较多。本文角色权限模块为简单模块,可根据实际项目需求再对角色功能进行细化,使之成为角色-用户-角色功能(-单一用户功能)模型
    
权限控制在信息管理中属于基本功能,权限控制中其中以Window权限为模型的角色用户(也称用户组用户)模型使用较多。本文以网站管理后台权限控制为例简要说明。
角色表+用户表,其中Hope_T_User(用户)中的User_RoleId关联Hope_T_Role(角色)的Role_Id,表中字段均为简单常见英文,不作详解。

主要思路是使用公共类在其中根据角色得出其越权时的操作,然后后台所有需要验证权限的页面均继承此类,使用相应参数判断角色以做相应操作。
公共类:AdminPermission
1

2

3

    /**//// <summary>4
    /// AdminPermission角色权限验证类5
    /// </summary>6
    public class AdminPermission : System.Web.UI.Page7

    
{8
        Hope.BLL.Hope_T_Role bllRole = new Hope.BLL.Hope_T_Role();9
        protected void CheckUserPermission( enumRole objEnumRole )10

        
{11
            bool isAllowAccess=false;//是否允许访问12
            if (Session["HopeUser"] == null)13

            
{14
                isAllowAccess = false;15
            }//Session不存在时16
            Hope.Model.Hope_T_User objUser= (Hope.Model.Hope_T_User)Session["HopeUser"];17
            int roleId=0;18
            if (objUser != null)19

            
{20
                roleId = Convert.ToInt32(objUser.User_RoleId);21
            }22
            Hope.Model.Hope_T_Role role = bllRole.GetModel(roleId);23

24
            if (role == null)25

            
{26
                isAllowAccess = false;27
            }28
            else29

            
{30
                switch (objEnumRole)31

                
{32

                    
#region33
                    case (enumRole.Role_PostArticle):34
                        if (role.Role_PostArticle != "1")35
                            isAllowAccess = false;36
                        else37
                            isAllowAccess = true;38
                        break;39
                    case (enumRole.Role_ManageArticle):40
                        if (role.Role_ManageArticle != "1")41
                            isAllowAccess = false;42
                        else43
                            isAllowAccess = true;44
                        break;45
                    case (enumRole.Role_ManageInfo):46
                        if (role.Role_ManageInfo != "1")47
                            isAllowAccess = false;48
                        else49
                            isAllowAccess = true;50
                        break;51
                    case (enumRole.Role_ManageLink):52
                        if (role.Role_ManageLink != "1")53
                            isAllowAccess = false;54
                        else55
                            isAllowAccess = true;56
                        break;57
                    case (enumRole.Role_ManageLog):58
                        if (role.Role_ManageLog != "1")59
                            isAllowAccess = false;60
                        else61
                            isAllowAccess = true;62
                        break;63
                    case (enumRole.Role_ManageRole):64
                        if (role.Role_ManageRole != "1")65
                            isAllowAccess = false;66
                        else67
                            isAllowAccess = true;68
                        break;69
                    case (enumRole.Role_ManageSystem):70
                        if (role.Role_ManageSystem != "1")71
                            isAllowAccess = false;72
                        else73
                            isAllowAccess = true;74
                        break;75
                    case (enumRole.Role_ManageUser):76
                        if (role.Role_ManageUser != "1")77
                            isAllowAccess = false;78
                        else79
                            isAllowAccess = true;80
                        break;81
                    case (enumRole.Role_ManageVote):82
                        if (role.Role_ManageVote != "1")83
                            isAllowAccess = false;84
                        else85
                            isAllowAccess = true;86
                        break;87
                    case (enumRole.Role_ManageAd):88
                        if (role.Role_ManageAd != "1")89
                            isAllowAccess = false;90
                        else91
                            isAllowAccess = true;92
                        break;93
                    case (enumRole.Role_ManageDoc):94
                        if (role.Role_ManageDoc != "1")95
                            isAllowAccess = false;96
                        else97
                            isAllowAccess = true;98
                        break;99
                    case (enumRole.Role_ManageRate):100
                        if (role.Role_ManageRate != "1")101
                            isAllowAccess = false;102
                        else103
                            isAllowAccess = true;104
                        break;105
                    #endregion106
                }107
            }108
            if (isAllowAccess == false)109

            
{110
                Response.Write("<script type=\"text/javascript\">alert(\"抱歉,您无权限查看此页" + role.Role_ManageAd + "。\");return false;</script>");111
            }112
        }113
    }114

    /**//// <summary>115
    /// 角色权限116
    /// </summary>117
    public enum enumRole118

    
{119

        
#region120

        /**//// <summary>121
        /// 是否允许发布文章122
        /// </summary>123
        Role_PostArticle=1,124

        /**//// <summary>125
        /// 是否允许管理文章126
        /// </summary>127
        Role_ManageArticle,128

        /**//// <summary>129
        /// 是否允许管理链接130
        /// </summary>131
        Role_ManageLink,132

        /**//// <summary>133
        /// 是否允许管理附属信息134
        /// </summary>135
        Role_ManageInfo,136

        /**//// <summary>137
        /// 是否允许管理日志138
        /// </summary>139
        Role_ManageLog,140

        /**//// <summary>141
        /// 是否允许管理系统142
        /// </summary>143
        Role_ManageSystem,144

        /**//// <summary>145
        /// 是否允许管理投票146
        /// </summary>147
        Role_ManageVote,148

        /**//// <summary>149
        /// 是否允许管理用户150
        /// </summary>151
        Role_ManageUser,152

        /**//// <summary>153
        /// 是否允许管理角色154
        /// </summary>155
        Role_ManageRole,156

        /**//// <summary>157
        /// 是否允许管理广告158
        /// </summary>159
        Role_ManageAd,160

        /**//// <summary>161
        /// 管理下发文件162
        /// </summary>163
        Role_ManageDoc,164

        /**//// <summary>165
        /// 管理利率166
        /// </summary>167
        Role_ManageRate168
        #endregion169
    }170
     171

需要验证的页面中添加如下代码
 1 public partial class manage_manage_user_add :AdminPermission//继承公共类
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 if(!IsPostBack)
6 {
7 CheckUserPermission(enumRole.Role_ManageUser);//验证权限
8 }
9 }
10 //…
11 }
 2 {
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 if(!IsPostBack)
6 {
7 CheckUserPermission(enumRole.Role_ManageUser);//验证权限
8 }
9 }
10 //…
11 }
此角色权限模块为简单模块,可根据实际项目需求再对角色功能进行细化,使之成为角色-用户-角色功能(-单一用户功能)模型。

                
            
        
浙公网安备 33010602011771号