Asp.Net Core 2.0 項目實戰(2)NCMVC一個基於Net Core2.0搭建的角色權限管理開發框架

Asp.Net Core 2.0 項目實戰(1) NCMVC開源下載了html

Asp.Net Core 2.0 項目實戰(2)NCMVC一個基於Net Core2.0搭建的角色權限管理開發框架前端

Asp.Net Core 2.0 項目實戰(3)NCMVC角色權限管理前端UI預覽及下載git

Asp.Net Core 2.0 項目實戰(4)ADO.NET操做數據庫封裝、 EF Core操做及實例web

Asp.Net Core 2.0 項目實戰(5)Memcached踩坑,基於EnyimMemcachedCore整理MemcachedHelper幫助類。redis

Asp.Net Core 2.0 項目實戰(6)Redis配置、封裝幫助類RedisHelper及使用實例數據庫

Asp.Net Core 2.0 項目實戰(7)MD5加密、AES&DES對稱加解密json

Asp.Net Core 2.0 項目實戰(8)Core下緩存操做、序列化操做、JSON操做等Helper集合類緩存

Asp.Net Core 2.0 項目實戰(9) 日誌記錄,基於Nlog或Microsoft.Extensions.Logging的實現及調用實例cookie

Asp.Net Core 2.0 項目實戰(10) 基於cookie登陸受權認證並實現前臺會員、後臺管理員同時登陸session

Asp.Net Core 2.0 項目實戰(11) 基於OnActionExecuting全局過濾器,頁面操做權限過濾控制到按鈕級

本文目錄
1. 摘要
2. 框架介紹
3. 權限管理之多一點說明
4. 總結

1.  摘要

  NCMVC角色權限管理框架是由最近練習Net Core時抽時間整理的系統,後續能不能發展成一個cms還要看朋友們是否有須要或時間是否充實。這裏NCMVC主要仍是給想要學習接觸Asp.Net Core2.0的朋友們提供一些借鑑以及坑點提醒等,項目如今還有不少不足,之後會盡可能完善一些。寫這個系列也沒有徹底按照原來列好的目錄正序來寫,倒敘/插敘都有也是項目練習到了順便記錄下來僅此而已。中間有朋友留言說沒有源碼理解起來比較麻煩,這裏我也盡我所能儘快把源碼發到git上供你們下載。

2.  框架介紹

  框架主要包含:數據庫訪問Ado.Net模式和Ef Core、日誌記錄、緩存(memcached/redis)等與傳統webform下簡單三層模式比較類似,方便理解層級關係。對初次學習Asp.Net Core相對容易理解些,難度級別:易。

 

 

 

  NC.Common【工具類】:緩存幫助類、配置管理類、加解密、json處理、日誌記錄等等工具合集

 

 

 

NC.Core【核心庫】:數據庫操做核心庫,現主要是MSSQL操做

 

NC.Lib【通用類庫】:主要是一些全局類庫,如:屬性類、登陸驗證類、通用權限驗證、配置、異常處理等

 

 

NC.Model【EFCore 數據庫model】:DB First模式,坑點:運行命令前項目要能生成成功,才能生成models,否則會報build fail。《Asp.Net Core 2.0 項目實戰(4)ADO.NET操做數據庫封裝、 EF Core操做及實例

 

 

NC.MVC【MVC主程序】:如今只實現後臺管理、菜單管理、角色權限管理、部門用戶管理等,Net Core下cookie與session模式不太相同,登陸須要藉助Microsoft.AspNetCore.Authentication。網站前臺會員後、臺管理員同項目登陸請參考《Asp.Net Core 2.0 項目實戰(10) 基於cookie登陸受權認證並實現前臺會員、後臺管理員同時登陸》;如今這種模式自我感受還有點繁瑣,若有其它簡便實現方式還請留言告知。

 

 

3.  權限管理之多一點說明

  既然如今項目是權限管理框架,那麼權限這塊仍是要再補充說明一些,在《Asp.Net Core 2.0 項目實戰(11) 基於OnActionExecuting全局過濾器,頁面操做權限過濾控制到按鈕級》中咱們已經寫過權限管理的實現文體思路,下面之於原來文章一個簡單補充。

 

 

  現權限管理主要是針對菜單以及菜單所擁有哪些權限(按鈕action)的一個控制,數據庫中添加菜單名稱一個別名(controller),別名儘可能與菜單連接名一致,並勾選菜單下有哪些操做權限(按鈕)。

  菜單建立完成後接下來就是程序中控制,全局Controller AdminBase負責權限驗證,全部後臺Controll繼承AdminBase ;如ad_min/article/article_add地址,AdminBase處理時會先找到article_add action判斷是否包含屬性,NavName和ActionType,若是包含會直接驗證權限中是否包含菜單別名(navname)和操做權限(添加按鈕actiontype),這樣就完成了常規驗證。

  基於約定大於配置的規則,咱們建立菜單時直接就寫controller名稱,這樣不寫NavName和ActionType屬性時,以Controller+約定(Add、Edit、Del等)進行驗證等

  總結:主體思路時,約定驗證權限+屬性驗證權限再配合其餘驗證寫法來達到按鈕級權限控制。

 

 

 

 

 

 

4.  總結

  剛開始寫《Asp.Net Core項目實戰》系列時從列目錄到寫第一篇文章Asp.Net Core才1.1當時也是先練習練習,畢竟還不成熟。寫到如今已經Net Core2.1,項目週期跨度比較大的,如今愈來愈多的人加入到Net Core開源行列來,畢竟Net Core是趨勢,將來用的人確定會愈來愈多。項目實戰的時候學習ASP.NET Core技術最快的方式,但願你們多多開源,讓Net Core生態儘可能完善起來。沒有完美的程序就像沒有完美的人,我還在努力;歡迎推薦。

相關文章
相關標籤/搜索