<一>权限表的相关设计

一、基于角色的权限设计最重要的就是角色与菜单和操作(数据)的关系,如下图,菜单绑定角色和操作构成一个权限表(这里只控制到按钮权限)。组织其实也是一种角色。

 

 

 二、表的设计

  • SysMenu                                            菜单表,存放界面上显示的菜单项
  • SysOperation                                     操作表,存放界面上按钮相关信息的表
  • SysRole                                             角色表,存放系统角色的信息表
  • SysUser                                             用户表,存放系统用户的信息表
  • SysMenuToOperate                          菜单与操作关联表,存放菜单与操作的关联信息
  • SysRoleToUser                                 角色与用户关联表,存放角色与用户的关联信息
  • SysRoleToMenuToOperate               权限表,存放角色、菜单、操作的关联信息

 

 

三、表的相关代码

    /// <summary>
    /// 菜单类
    /// </summary>
    public class SysMenu:IEntity
    {          
        public string Id { get; set; }   
        public string Name { get; set; } 
        public string ParentId { get; set; } = "";    
        public int? Sort { get; set; } = 0;
        public bool ShowState { get; set; } = true;
     }
    /// <summary>
    /// 操作类
    /// </summary>
    public class SysOperation:IEntity
    {
        public string Id { get; set; }
        public string Name { get; set; }  
        public string KeyCode { get; set; }
        public int Sort { get; set; } = 0;  
    }
    /// <summary>
    /// 角色类
    /// </summary>
    public  class SysRole:IEntity
    {      
        public string Id { get; set; } 
        public string Name { get; set; }
    }
    /// <summary>
    /// 用户类
    /// </summary>
    public class SysUser : IEntity
    {   
        public string Id { get; set; }
        public string Name { get; set; } 
        public string Password { get; set; }
    }
    /// <summary>
    /// 菜单与操作关联表
    /// </summary>
    public  class SysMenuToOperate:IEntity
    {
        public string Id { get; set; }
        public string MenuId { get; set; }
        public string OperateId { get; set; }
    }
    /// <summary>
    /// 角色与用户关联表
    /// </summary>
    public class SysRoleToUser:IEntity
    {
        public string Id { get; set; }
        public string UserId { get; set; }
        public string RoleId { get; set; }
    }
    /// <summary>
    /// 菜单与角色关联表
    /// </summary>
    public  class SysRoleToMenuToOperate : IEntity
    {
        public string Id { get; set; }     
        public string MenuToOperateId { get; set; }    
        public string RoleId { get; set; }     
        public bool IsValid { get; set; }
     }

 

 

 

 

 
posted @ 2022-03-22 02:44  许轩霖  阅读(497)  评论(0编辑  收藏  举报