netcore mvc菜单,角色,权限
netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源
AntMgr https://github.com/yuzd/AntMgr
基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统
特色:
- 用户管理
- 菜单管理
- 角色管理
- 权限管理[精确到按钮])
- 代码生成器
如何使用
代码克隆到本地 用vs2017或以上版本 打开工程。
项目结构如下:


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

里面包含4张表的schema和初始化数据,你可以新建一个db,也可以导入到你现有的db
- system_users 系统用户表
- system_menu 系统菜单表
- system_role 系统角色表
- system_page_action 按钮权限表

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

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

如果是按照上面初始化db脚本的话 初始化的登录名 zdyu 密码 123456
登录成功如下图:
首页

菜单管理

权限管理

角色管理


系统用户

代码自动生成

权限如何设计的
- 一个菜单(system_menu)对应一个view页面【1:1】
- 一个用户(system_user)只能有一个角色(system_role)【1:1】
- 一个角色(system_role)可以配置多个菜单权限(view页面) 和view页面里面的功能模块(ru按钮) 【1:N】
- 每个菜单(view页面)下的功能模块(如按钮)配置实际该功能用到的接口【1:N】
约定>配置 权限设计其实很简单
权限主要拦截器代码实现在: 
用户登录态是记录在cookie的 默认的keyName:cbeid 可以在这个里面更改 
约定一
具有权限拦截的Controller类上面统一打上[API("controller作用描述")] 方法上面打上 [API("方法作用描述")]


约定二
在页面里面写需要权限控制的按钮的时候
<button type="button" action-id="role-add" action-name="新增角色" style="display: none" >新增角色</button>
| 标签名称 | 含义 |
|---|---|
| action-id | 表示这个权限按钮的id 在当前view唯一 |
| action-name | 权限按钮的作用描述 |
| display | 默认使用 none 隐藏 |
有了这个标签 在配置权限的时候会解析页面自动拿到需要权限拦截的功能按钮!
只要遵守如上2个约定开发好页面和controller后,按照如下步骤进行配置权限
- 在菜单管理加入新增的页面
- 在权限管理配置功能按钮对应用到的接口
- 在角色管理修改对应的角色
使用本后台的前提条件
- 你有过开发mvc系统的经验 最起码你得知道controller view Filter 是什么东西。
- 有用过orm的经验,比如EF之类的。 (虽然本后台用的是AntData这个ORM框架,但是该ORM使用上采用的是原生Linq To SQL的模式和EF差不多,但是比EF轻量级)https://github.com/yuzd/AntData.ORM
- 有用过Autofac这款DI容器, https://github.com/autofac/Autofac Autofac.Annotation是我针对Autofc写一个开源扩展,目的是能够像java的Spring框架一样,用标签来控制注入, 摆脱写把很多注入配置代码 https://github.com/yuzd/Autofac.Annotation
- 有用过AutoMapper这个组件,没有的话 稍微看下官方文档就好了 https://github.com/AutoMapper/AutoMapper
- 前端采用的是VUE,所以你得会用vue。
使用本后台能达到什么效果
- 开发的页面具体完全的权限拦截功能,不需要复杂的配置按照约定的2点,就可以让开发出来的页面 完全实现某个角色 支持配置你想让它有哪些菜单,页面展示哪些按钮。
- 掌握基于最新的netcore技术
- 对于一个表的CRUD用代码自动生成功能后稍微加点业务逻辑代码,5分钟内可以开发完成
我的开发环境
vs 2017 或以上版本
安装了配合ORM框架的vs一键生成dbmodel 插件:
https://marketplace.visualstudio.com/items?itemName=nainaigu.AntDataVS
netcore mvc菜单,角色,权限的更多相关文章
- ASP.NET MVC 通用角色权限管理系统
RightControl 介绍 .NET 通用后台角色权限管理系统,已完成.项目地址:http://106.14.77.184/Admin/Login 码云地址:https://gitee.com/L ...
- MVC基于角色权限控制--菜单展示
在用户成功登陆后台页面后,我们需要将当前用户拥有的权限通过菜单的形式展现出来,将未具备的权限隐藏 新建一个HomeController,用于展示后台首页和获取用户权限数据 namespace CZBK ...
- [.Net MVC] 用户角色权限管理_使用CLK.AspNet.Identity
项目:后台管理平台 意义:一个完整的管理平台需要提供用户注册.登录等功能,以及认证和授权功能. 一.为何使用CLK.AspNet.Identity 首先简要说明所采取的权限控制方式.这里采用了基于角色 ...
- MVC基于角色权限控制--管理角色
管理角色分为 添加角色.删除角色.修改角色.给角色分配权限(修改角色权限) 新建RoleInfoController继承BaseController namespace CZBK.ItcastOA.W ...
- MVC基于角色权限控制--权限过滤
用户访问服务器实际上就是访问控制器下的方法,因此在权限控制就是控制器方法的访问权限 为了方便控制,我们可以建立一个基类控制器(BaseController),让需要的控制器继承这个控制器即可,在Bas ...
- MVC基于角色权限控制--用户管理
用户管理模块包括 新增用户.修改用户.展示用户列表.删除用户.用户角色分配.用户角色删除.用户权限分配 这里只介绍关于权限有关的 用户角色分配.用户角色删除.用户权限分配 新建控制器 UserInfo ...
- MVC基于角色权限控制--数据库设计
在网站后台设计过程中都会遇上权限控制这一问题 当前较为流行的解决方案是基于角色的权限管理 基本思路如下 分别建立 用户信息表.角色信息表.权限信息表 让用户和角色关联,角色和权限关联,当用户访问时,通 ...
- netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源
AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统 特色: 用户管理 菜单管理 角色管理 权限管理 ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10
今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...
随机推荐
- SIGAI机器学习第一集 机器学习简介
讲授机器学习的基本概念.发展历史与典型应用 大纲: 人工智能简介机器学习简介为什么需要机器学习机器学习的发展历史机器学习的典型应用人工智能主要的公司本课程讲授的算法 机器学习并不是人工智能一上来就采用 ...
- hive表的DDL
查看表 hive> show tables;创建表 hive> create table t1(id int);查看表结构 ...
- 009_Python3 元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 实例1: >>> ...
- Oracle Linux 6.4 LVM中误删VG之恢复过程
一.项目背景描述 1.OSS现网测试数据库因大量小事物频繁提交运行非常缓慢.经分析为DS3950存储所在磁盘I/O存在瓶颈,大量等待事件,性能受限.另外,开发同事没有优化意识,没将小事物做成批量提交方 ...
- Centos7 安装php7.3 并扩展 MySQL、postgresql
首先是安装需要的扩展文件 yum -y install freetype-devel yum -y install libpng-devel yum -y install libjpeg-devel ...
- wepy项目的学习
使用Promise 开发实时编译 wepy build --watch 安装依赖 cd myproject npm install 安装(更新) wepy 命令行工具. npm install wep ...
- 10月清北学堂培训 Day 5
今天是廖俊豪老师的讲授~ T1 第一次想出正解 30 pts: k <= 10,枚举如何把数放到矩阵中,O ( k ! ): 100 pts: 对于矩阵的每一列,我们二分最小差异值,然后贪心去判 ...
- 常用的os库笔记
1.创建文件 import os os.mkdir('d:/log') 2.重命名文件 import os os.rename('d:/log','d:/newlog') 3.删除文件 import ...
- html中的lang标记有什么用
html中的lang标记有什么用 一.总结 一句话总结: 为文档或元素设定主语言(即lang) 比如google浏览器有个自动翻译的功能,而自动翻译要看这个文档的语言 1.其它标签中设置lang属性? ...
- 了解有关 in_memory 工作空间的详细信息
ArcGIS 提供了一个可写入输出要素类和表的内存工作空间.作为将地理处理输出写入磁盘上的某个位置或网络位置的备选方案,可将输出写入内存工作空间中.通常,将数据写入内存工作空间要明显快于写入其他格式( ...