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

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

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

特色:

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

如何使用

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

项目结构如下:

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

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

  1. system_users 系统用户表
  2. system_menu 系统菜单表
  3. system_role 系统角色表
  4. 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后,按照如下步骤进行配置权限

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

使用本后台的前提条件

  1. 你有过开发mvc系统的经验 最起码你得知道controller view Filter 是什么东西。
  2. 有用过orm的经验,比如EF之类的。 (虽然本后台用的是AntData这个ORM框架,但是该ORM使用上采用的是原生Linq To SQL的模式和EF差不多,但是比EF轻量级)https://github.com/yuzd/AntData.ORM
  3. 有用过Autofac这款DI容器, https://github.com/autofac/Autofac Autofac.Annotation是我针对Autofc写一个开源扩展,目的是能够像java的Spring框架一样,用标签来控制注入, 摆脱写把很多注入配置代码 https://github.com/yuzd/Autofac.Annotation
  4. 有用过AutoMapper这个组件,没有的话 稍微看下官方文档就好了 https://github.com/AutoMapper/AutoMapper
  5. 前端采用的是VUE,所以你得会用vue。

使用本后台能达到什么效果

  1. 开发的页面具体完全的权限拦截功能,不需要复杂的配置按照约定的2点,就可以让开发出来的页面 完全实现某个角色 支持配置你想让它有哪些菜单,页面展示哪些按钮。
  2. 掌握基于最新的netcore技术
  3. 对于一个表的CRUD用代码自动生成功能后稍微加点业务逻辑代码,5分钟内可以开发完成

我的开发环境

  1. vs 2017 或以上版本

  2. 安装了配合ORM框架的vs一键生成dbmodel 插件:

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

netcore mvc菜单,角色,权限的更多相关文章

  1. ASP.NET MVC 通用角色权限管理系统

    RightControl 介绍 .NET 通用后台角色权限管理系统,已完成.项目地址:http://106.14.77.184/Admin/Login 码云地址:https://gitee.com/L ...

  2. MVC基于角色权限控制--菜单展示

    在用户成功登陆后台页面后,我们需要将当前用户拥有的权限通过菜单的形式展现出来,将未具备的权限隐藏 新建一个HomeController,用于展示后台首页和获取用户权限数据 namespace CZBK ...

  3. [.Net MVC] 用户角色权限管理_使用CLK.AspNet.Identity

    项目:后台管理平台 意义:一个完整的管理平台需要提供用户注册.登录等功能,以及认证和授权功能. 一.为何使用CLK.AspNet.Identity 首先简要说明所采取的权限控制方式.这里采用了基于角色 ...

  4. MVC基于角色权限控制--管理角色

    管理角色分为 添加角色.删除角色.修改角色.给角色分配权限(修改角色权限) 新建RoleInfoController继承BaseController namespace CZBK.ItcastOA.W ...

  5. MVC基于角色权限控制--权限过滤

    用户访问服务器实际上就是访问控制器下的方法,因此在权限控制就是控制器方法的访问权限 为了方便控制,我们可以建立一个基类控制器(BaseController),让需要的控制器继承这个控制器即可,在Bas ...

  6. MVC基于角色权限控制--用户管理

    用户管理模块包括 新增用户.修改用户.展示用户列表.删除用户.用户角色分配.用户角色删除.用户权限分配 这里只介绍关于权限有关的 用户角色分配.用户角色删除.用户权限分配 新建控制器 UserInfo ...

  7. MVC基于角色权限控制--数据库设计

    在网站后台设计过程中都会遇上权限控制这一问题 当前较为流行的解决方案是基于角色的权限管理 基本思路如下 分别建立 用户信息表.角色信息表.权限信息表 让用户和角色关联,角色和权限关联,当用户访问时,通 ...

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

    AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统 特色: 用户管理 菜单管理 角色管理 权限管理 ...

  9. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

    今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...

随机推荐

  1. 微信&QQ中打开网页提示“已停止访问该网页”是怎么回事?

    背景 大家是不是经常会遇到这种情况,分享出去的网页链接在微信里或者QQ里打开会提示“已停止访问该网页”,当大家看到这种的提示的时候就说明你访问的网页已经被腾讯拦截了. 当大家遇到以上这种情况的时候要怎 ...

  2. BP神经网络原理及在Matlab中的应用

    一.人工神经网络 关于对神经网络的介绍和应用,请看如下文章 ​ 神经网络潜讲 ​ 如何简单形象又有趣地讲解神经网络是什么 二.人工神经网络分类 按照连接方式--前向神经网络.反馈(递归)神经网络 按照 ...

  3. 使用dig进行DNS查询

    dig全称Domain Information Groper,是一个DNS域名信息查询的工具,可以使用来查看域名解析的过程. dig是linux下自带的工具,如果要在windows下使用需要自行下载和 ...

  4. OpenFOAM Tutorial Standard Solvers【转载】

    转载自:http://www.cnblogs.com/fortran/articles/1996927.html boundaryFoam Steady-state solver for 1D tur ...

  5. opencv VS C++ 配置

    包含目录 $(OPENCV)\include\ $(OPENCV)\include\opencv\ $(OPENCV)\include\opencv2\   即: D:\opencv\opencv\b ...

  6. Android数据绑定DataBinding(一)入门篇

    早上看到了一篇推文"还在使用繁琐的findViewById,跟着尝试了一下DataBinding,之前使用ButteKnife就已经干掉了findViewById.因为写过微信小程序,那种在 ...

  7. [游戏开发]LÖVE2D(1):引擎介绍

    什么是LÖVE引擎 Love引擎是一个非常棒的框架,你可以用来在Lua制作2D游戏.它是免费的,开源的,适用于Windows,Mac OS X,Linux,Android和iOS. 怎么安装 在官网下 ...

  8. LDAP的filter查询详解

    转: 等于(EQUAL TO):  =大于等于(Greater than):  >=小于等于(Less than):  <=通配符(wildcard):  *  逻辑运算符:逻辑与(log ...

  9. Eclipse自动生成作者、日期注释等功能设置 (转载)

    原文地址:http://blog.sina.com.cn/s/blog_4080505a0101guoh.html 在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式 ...

  10. PHP使用MongoDB存储经纬度,查询距离

    https://blog.csdn.net/qq_40012295/article/details/84861466 https://docs.mongodb.com/manual/reference ...