netcore mvc菜單,角色,權限


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

 

 

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

基於netcore2.0 mvc 開發的 快速搭建具有如下特色的后台管理系統

特色:

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

如何使用

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

項目結構如下:

imageimage

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

image

里面包含4張表的schema和初始化數據,你可以新建一個db,也可以導入到你現有的db

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

image

導入db成功后在項目配置文件里面修改成正確的db鏈接字符串

image

F5啟動應用 會進入登錄頁面

image

如果是按照上面初始化db腳本的話 初始化的登錄名 zdyu 密碼 123456

登錄成功如下圖:

首頁

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】

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

權限主要攔截器代碼實現在: image

用戶登錄態是記錄在cookie的 默認的keyName:cbeid 可以在這個里面更改 image

約定一

具有權限攔截的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM