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请求 ...
随机推荐
- 洛谷 P3374 【模板】树状数组 1 & P3368 【模板】树状数组 2 题解
一维树状数组的作用主要是单点修改,单点查询,区间修改,区间查询. 模板1是单点修改,区间查询:模板2是单点查询,区间修改. 模板1: #include<iostream> #include ...
- P2313 [HNOI2005]汤姆的游戏
题目描述 汤姆是个好动的孩子,今天他突然对圆规和直尺来了兴趣.于是他开始在一张很大很大的白纸上画很多很多的矩形和圆.画着画着,一不小心将他的爆米花弄撒了,于是白纸上就多了好多好多的爆米花.汤姆发现爆米 ...
- 代码 | 自适应大邻域搜索系列之(6) - 判断接受准则SimulatedAnnealing的代码解析
前言 前面三篇文章对大家来说应该很简单吧?不过轻松了这么久,今天再来看点刺激的.关于判断接受准则的代码.其实,判断接受准则有很多种,效果也因代码而异.今天介绍的是模拟退火的判断接受准则.那么,相关的原 ...
- 《论文翻译》Xception
目录 深度可分离网络-Xception 注释 1. 摘要 2. 介绍 3. Inception假设 4. 卷积和分离卷积之间的联系 4. 先验工作 5. Xception 架构 6. 个人理解 单词汇 ...
- filter方法求出列表所有奇数并构造新列
a = [, , , , , , , , , ] b = filter(lambda x: x % != , a) for i in b: print(i)
- C语言应用--数据类型定制一定义和引用
目前,定制正在变的越来越普遍,定制服务.定制衣服.甚至使用的键盘都是定制了.在C语言中虽然也包括了整型.字符型和浮点型等基本类型,也有基本的组合数据类型数组.但是这些类型都是针对某一种特定类型时应用没 ...
- KCF追踪方法流程原理
读"J. F. Henriques, R. Caseiro, P. Martins, J. Batista, 'High-speed tracking with kernelized cor ...
- avalon background-image写法
ms-css="{backgroundImage: 'url('+reportdata.avatar + ')'}"
- C++ <Algorithm>小小总结
<algorithm>是C++标准程序库中的一个头文件,定义了C++ STL标准中的基础性的算法(均为函数模板).<algorithm>定义了设计用于元素范围的函数集合.任何对 ...
- python matplotlib(数据可视化)
吐槽 网上搜了不少matplotlib安装方法(不信,你可以试试.) 我只能说,除了太繁琐,就是没什么用! 如果你是python3.6.5版本 我给你最最最正确的建议: 直接打开cmd,找到pip用命 ...