ASP.Net MVC权限设置

作者:王文青
开发工具与关键技术:VS+ASP.Net MVC +SQL Server

数据库的设计:

用户表 SYS_Users
用户ID UsersID
用户类型ID UsersTypesID
账号 AccountNumber
密码 Password
用户姓名 UsersName
手机号码 Phone
头像路径 AvatarPath
创建时间 CreationTime
用户类型表 SYS_UserTypes
用户类型ID UsersTypesID
用户类型MC UserTypesName
描述 Describe
系统模块功能表 SYS_SystemModuleFunction
系统模块功能ID SystemModuleFunctionID
父ID FarID
系统模块功能MC SystemModuleFunctionName
路径 URL
代码名称 CodeName
启用否 WhetherToEnable
排序 Sort
描述 Describe
权限组表 SYS_UserPermissions
权限组ID AuthorizationGroupID
用户类型ID UsersTypesID
模块功能ID ModuleFunctionID
添加人ID ToAddPeopleID
添加时间 AddTheTime
启用否 WhetherToEnable

使用ActionFilterAttribute过滤类在某个方法前使用

[Permissions(Code = "代码名称")]//执行方法前使用
 public ActionResult TeamSpecifiedTimeSetting{
          return View();
}

建立Permissions .cs 内容如下

 public class Permissions : ActionFilterAttribute{//继承过滤类
/// 
    /// 获取Code名称
    /// 
    public string Code{ 
        get; 
        set; 
    }
public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
bool isstate = true;
if(isstate){
//逻辑判断代码
    }else{
   filterContext.Result = new RedirectResult("url" + "没有该模块的权限")
    }
         }
            }

项目总结:
在这次项目中,学到用过滤类(ActionFilterAttribute)做权限的验证,使用cookie存放查询出的内容,在到cookie查询需要的权限,提高性能,减少提交。虽然项目是升级,看别人的代码,然后使劲改,最恶心的if else多层嵌套写了几千行,代码看着我一脸懵逼,代码可读性非常低。代码应该减少if else嵌套,一样的代码用封装,提高代码的可读性,维护性。

你可能感兴趣的:(ASP.NET,MVC)