netcore mvc快速開發系統(菜單,角色,權限[精確到按鈕])開源

 

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

基於netcore2.0 mvc 開發的 快速搭建具備以下特點的後臺管理系統html

特點:

  1. 用戶管理
  2. 菜單管理
  3. 角色管理
  4. 權限管理[精確到按鈕])
  5. 代碼生成器

如何使用

代碼克隆到本地 用vs2017或以上版本 打開工程。前端

項目結構以下:

imageimage

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

image

裏面包含4張表的schema和初始化數據,你能夠新建一個db,也能夠導入到你現有的dbvue

  1. system_users 系統用戶表
  2. system_menu 系統菜單表
  3. system_role 系統角色表
  4. system_page_action 按鈕權限表

image

導入db成功後在項目配置文件裏面修改爲正確的db連接字符串

image

F5啓動應用 會進入登陸頁面

image

若是是按照上面初始化db腳本的話 初始化的登陸名 zdyu 密碼 123456java

登陸成功以下圖:node

首頁

image

菜單管理

image

權限管理

image

角色管理

imageimage

系統用戶

image

代碼自動生成

image

權限如何設計的

  • 一個菜單(system_menu)對應一個view頁面【1:1】
  • 一個用戶(system_user)只能有一個角色(system_role)【1:1】
  • 一個角色(system_role)能夠配置多個菜單權限(view頁面) 和view頁面裏面的功能模塊(ru按鈕) 【1:N】
  • 每一個菜單(view頁面)下的功能模塊(如按鈕)配置實際該功能用到的接口【1:N】

約定>配置 權限設計其實很簡單

權限主要攔截器代碼實如今: imagegit

用戶登陸態是記錄在cookie的 默認的keyName:cbeid 能夠在這個裏面更改 imagegithub

約定一

具備權限攔截的Controller類上面統一打上[API("controller做用描述")] 方法上面打上 [API("方法做用描述")]web

 

約定二

在頁面裏面寫須要權限控制的按鈕的時候markdown

<button type="button" action-id="role-add" action-name="新增角色" style="display: none" >新增角色</button>
標籤名稱 含義
action-id 表示這個權限按鈕的id 在當前view惟一
action-name 權限按鈕的做用描述
display 默認使用 none 隱藏

有了這個標籤 在配置權限的時候會解析頁面自動拿到須要權限攔截的功能按鈕!cookie

只要遵照如上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

相關文章
相關標籤/搜索