时间:2021-05-18
角色表+用户表,其中Hope_T_User(用户)中的User_RoleId关联Hope_T_Role(角色)的Role_Id,表中字段均为简单常见英文,不作详解。
主要思路是使用公共类在其中根据角色得出其越权时的操作,然后后台所有需要验证权限的页面均继承此类,使用相应参数判断角色以做相应操作。
公共类:AdminPermission
复制代码 代码如下:
/// <summary>
/// AdminPermission角色权限验证类
/// </summary>
public class AdminPermission : System.Web.UI.Page
{
Hope.BLL.Hope_T_Role bllRole = new Hope.BLL.Hope_T_Role();
protected void CheckUserPermission( enumRole objEnumRole )
{
bool isAllowAccess=false;//是否允许访问
if (Session["HopeUser"] == null)
{
isAllowAccess = false;
}//Session不存在时
Hope.Model.Hope_T_User objUser= (Hope.Model.Hope_T_User)Session["HopeUser"];
int roleId=0;
if (objUser != null)
{
roleId = Convert.ToInt32(objUser.User_RoleId);
}
Hope.Model.Hope_T_Role role = bllRole.GetModel(roleId);
if (role == null)
{
isAllowAccess = false;
}
else
{
switch (objEnumRole)
{
#region
case (enumRole.Role_PostArticle):
if (role.Role_PostArticle != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageArticle):
if (role.Role_ManageArticle != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageInfo):
if (role.Role_ManageInfo != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageLink):
if (role.Role_ManageLink != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageLog):
if (role.Role_ManageLog != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageRole):
if (role.Role_ManageRole != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageSystem):
if (role.Role_ManageSystem != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageUser):
if (role.Role_ManageUser != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageVote):
if (role.Role_ManageVote != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageAd):
if (role.Role_ManageAd != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageDoc):
if (role.Role_ManageDoc != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
case (enumRole.Role_ManageRate):
if (role.Role_ManageRate != "1")
isAllowAccess = false;
else
isAllowAccess = true;
break;
#endregion
}
}
if (isAllowAccess == false)
{
Response.Write("<script type=\"text/javascript\">alert(\"抱歉,您无权限查看此页" + role.Role_ManageAd + "。\");return false;</script>");
}
}
}
/// <summary>
/// 角色权限
/// </summary>
public enum enumRole
{
#region
/// <summary>
/// 是否允许发布文章
/// </summary>
Role_PostArticle=1,
/// <summary>
/// 是否允许管理文章
/// </summary>
Role_ManageArticle,
/// <summary>
/// 是否允许管理链接
/// </summary>
Role_ManageLink,
/// <summary>
/// 是否允许管理附属信息
/// </summary>
Role_ManageInfo,
/// <summary>
/// 是否允许管理日志
/// </summary>
Role_ManageLog,
/// <summary>
/// 是否允许管理系统
/// </summary>
Role_ManageSystem,
/// <summary>
/// 是否允许管理投票
/// </summary>
Role_ManageVote,
/// <summary>
/// 是否允许管理用户
/// </summary>
Role_ManageUser,
/// <summary>
/// 是否允许管理角色
/// </summary>
Role_ManageRole,
/// <summary>
/// 是否允许管理广告
/// </summary>
Role_ManageAd,
/// <summary>
/// 管理下发文件
/// </summary>
Role_ManageDoc,
/// <summary>
/// 管理利率
/// </summary>
Role_ManageRate
#endregion
}
需要验证的页面中添加如下代码
复制代码 代码如下:
public partial class manage_manage_user_add :AdminPermission//继承公共类
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
CheckUserPermission(enumRole.Role_ManageUser);//验证权限
}
}
//…
}
此角色权限模块为简单模块,可根据实际项目需求再对角色功能进行细化,使之成为角色-用户-角色功能(-单一用户功能)模型。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ASP.NET技术开发中的安全问题,可通过识别用户身份、控制访问权限以及加密数据等方式提高网站开发安全的有效性。1、识别用户身份ASP.NET网站的识别方式有W
本文针对ASP.NET中IsPostBack的用法进行了详细的说明,有助于读者更准确的掌握ASP.NET中IsPostBack的用法。一、IsPostBack介
本文实例讲述了ASP.NET数据库缓存依赖,分享给大家供大家参考。具体如下:一般在ASP.NET中,Cache类最酷的特点是它能根据各种依赖来良好的控制自己的行
虽然说ASP.NET属于安全性高的脚本语言,但是也经常看到ASP.NET网站由于过滤不严造成注射.由于ASP.NET基本上配合MMSQL数据库架设如果权限过大的
1.不建议在安装了主控端的服务器上支持ASP.net,因为Asp.Net有大量未知的安全问题。2.如果用户需要用ASP.net写文件或目录,需要增加以下的权限。