基於netcore2.0 mvc 開發的 快速搭建具備以下特點的後臺管理系統html
特點:
- 用戶管理
- 菜單管理
- 角色管理
- 權限管理[精確到按鈕])
- 代碼生成器
如何使用
代碼克隆到本地 用vs2017或以上版本 打開工程。前端
項目結構以下:


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

裏面包含4張表的schema和初始化數據,你能夠新建一個db,也能夠導入到你現有的dbvue
- system_users 系統用戶表
- system_menu 系統菜單表
- system_role 系統角色表
- system_page_action 按鈕權限表

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

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

若是是按照上面初始化db腳本的話 初始化的登陸名 zdyu 密碼 123456java
登陸成功以下圖:node
首頁

菜單管理

權限管理

角色管理


系統用戶

代碼自動生成

權限如何設計的
- 一個菜單(system_menu)對應一個view頁面【1:1】
- 一個用戶(system_user)只能有一個角色(system_role)【1:1】
- 一個角色(system_role)能夠配置多個菜單權限(view頁面) 和view頁面裏面的功能模塊(ru按鈕) 【1:N】
- 每一個菜單(view頁面)下的功能模塊(如按鈕)配置實際該功能用到的接口【1:N】
約定>配置 權限設計其實很簡單
權限主要攔截器代碼實如今:
git
用戶登陸態是記錄在cookie的 默認的keyName:cbeid 能夠在這個裏面更改
github
約定一
具備權限攔截的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後,按照以下步驟進行配置權限
- 在菜單管理加入新增的頁面
- 在權限管理配置功能按鈕對應用到的接口
- 在角色管理修改對應的角色
使用本後臺的前提條件
- 你有過開發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