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

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

ML 用戶 解密 https redis json uil AI 不足

本文目錄
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生態盡量完善起來。沒有完美的程序就像沒有完美的人,我還在努力;歡迎推薦。

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