netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

释放双眼,带上耳机,听听看~!

 

AntMgr https://github.com/yuzd/AntMgr

基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统

特色:

  1. 用户管理
  2. 菜单管理
  3. 角色管理
  4. 权限管理[精确到按钮])
  5. 代码生成器

如何使用

代码克隆到本地 用vs2017或以上版本 打开工程。

项目结构如下:

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

找到DbModel下面的初始化db脚本

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

里面包含4张表的schema和初始化数据,你可以新建一个db,也可以导入到你现有的db

  1. system_users 系统用户表
  2. system_menu 系统菜单表
  3. system_role 系统角色表
  4. system_page_action 按钮权限表

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

导入db成功后在项目配置文件里面修改成正确的db链接字符串

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

F5启动应用 会进入登录页面

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

如果是按照上面初始化db脚本的话 初始化的登录名 zdyu 密码 123456

登录成功如下图:

首页

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

菜单管理

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

权限管理

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

角色管理

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

系统用户

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

代码自动生成

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

权限如何设计的

  • 一个菜单(system_menu)对应一个view页面【1:1】
  • 一个用户(system_user)只能有一个角色(system_role)【1:1】
  • 一个角色(system_role)可以配置多个菜单权限(view页面) 和view页面里面的功能模块(ru按钮) 【1:N】
  • 每个菜单(view页面)下的功能模块(如按钮)配置实际该功能用到的接口【1:N】

约定>配置 权限设计其实很简单

权限主要拦截器代码实现在: netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

用户登录态是记录在cookie的 默认的keyName:cbeid 可以在这个里面更改 netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

约定一

具有权限拦截的Controller类上面统一打上[API(\"controller作用描述\")] 方法上面打上 [API(\"方法作用描述\")]

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

 

约定二

在页面里面写需要权限控制的按钮的时候

<button type=\"button\" action-id=\"role-add\" action-name=\"新增角色\" style=\"display: none\" >新增角色</button>

标签名称 含义
action-id 表示这个权限按钮的id 在当前view唯一
action-name 权限按钮的作用描述
display 默认使用 none 隐藏

有了这个标签 在配置权限的时候会解析页面自动拿到需要权限拦截的功能按钮!

只要遵守如上2个约定开发好页面和controller后,按照如下步骤进行配置权限

  1. 在菜单管理加入新增的页面
  2. 在权限管理配置功能按钮对应用到的接口
  3. 在角色管理修改对应的角色

其他说明

后台用到了的Orm框架:

https://github.com/yuzd/AntData.ORM

配合ORM框架的vs一键生成dbmodel 插件:

https://marketplace.visualstudio.com/items?itemName=nainaigu.AntDataVS

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

代码审计之seacms v6.45 前台Getshell 复现分析

2020-11-9 5:36:56

随笔日记

死磕 java同步系列之CyclicBarrier源码解析——有图有真相

2020-11-9 5:36:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索