手机版

ASP.NET简单角色权限控制示例

时间:2021-10-26 来源:互联网 编辑:宝哥软件园 浏览:

角色用户表,其中Hope_T_User中的User_RoleId与Hope_T_Role的Role_Id关联,表中的字段都是简单通用的英文,所以不做详细说明。

主要思路是使用公共类在其中根据角色得出其越权时的操作,然后后台所有需要验证权限的页面均继承此类,使用相应参数判断角色以做相应操作。公共类:AdminPermission复制代码代码如下:///summary///AdminPermission角色权限验证类////摘要公共类管理权限:系统.网页BLL .希望=新希望BLL。霍普_ T _ Role();受保护的void CheckUserPermission(EnumRole ObJenumRole){ bool Isallowaccess=false;//是否允许访问if(Session[' hope user ']==null){ isaallaccession=false;}//会话不存在时希望。模型。希望用户对象=(希望.模特。希望_ T _用户)会话【‘希望用户’】;int RoleID=0;if (objUser!=null) { roleId=Convert .至t32(objUser .user _ RoleID);}希望。模型。希望_ T _角色角色=bllRole .GetModel(RoleID);if(role==null){ isaallaccession=false;} else { switch(ObJenumRole){ # region case(enum Role .Role_PostArticle): if(角色。角色_PostArticle!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageArticle): if(角色。角色_管理文章!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageInfo): if(角色。角色_ManageInfo!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageLink): if(角色。角色_ManageLink!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageLog): if(角色。角色_管理日志!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageRole): if(角色。角色_管理员角色!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageSystem): if(角色。角色_管理系统!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageUser): if(角色。角色_管理员用户!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.角色_管理投票): if(角色。角色_经理投票!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageAd): if(角色。角色_ ManageAd!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.Role_ManageDoc): if(角色。角色_ManageDoc!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;案例(列举.role _ ManagEment rate): if(角色。角色_经理!=' 1 ')isaallaccession=false;else isAllowAccess=true打破;# end region } } if(isaallaccess==false){ Response .编写('脚本类型=\ ' text/JavaScript ' alert(\ '抱歉,您无权限查看此页角色。角色管理器。

\');返回false/script’);} } } /**////摘要//角色权限////摘要公共枚举enumRole { #region /**////摘要///是否允许发布文章////summary Role_PostArticle=1,/**////summary //是否允许管理文章////摘要Role_ManageArticle,/**////摘要///是否允许管理链接////摘要Role_ManageLink,/**////摘要///是否允许管理附属信息////摘要Role_ManageInfo,/**////摘要///是否允许管理日志////摘要Role_ManageLog,/**////摘要///是否允许管理系统////摘要Role_ManageSystem,/**////摘要///是否允许管理投票////summary Role_ManageVote,/**////summary //是否允许管理用户////summary Role_ManageUser,/**////summary //是否允许管理角色////摘要角色_管理员角色,/* *///摘要///是否允许管理广告////摘要Role_ManageAd,/**////摘要///管理下发文件////摘要Role_ManageDoc,/**////摘要///管理利率////摘要role _ ManagEment rate # end region }需要验证的页面中添加如下代码复制代码代码如下:公共分部类manage _ manage _ user _ add : admin permission//继承公共类{受保护的无效页面_加载(对象发送者,事件参数){ if(!IsPostBack){ checkuser permission(EnumRole .role _ ManageUser);//验证权限} } //… } 此角色权限模块为简单模块,可根据实际项目需求再对角色功能进行细化,使之成为角色-用户-角色功能(-单一用户功能)模型。

版权声明:ASP.NET简单角色权限控制示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。