大家好,最近把Core學習了下,然后做了個后台框架練習一下。
在這里先向各位介紹一下本系統,歡迎大家試用,如果測到bug歡迎反饋。測試一段時間修復一些明顯bug后,將開源公布給大家。
.net Core 給我們提供了一個非常好的東西:OnActionExecuting
在每個Action執行之前,進行權限檢查,合法就繼續,非法就反饋錯誤信息。我在做這個后台系統時,采用的是如下的方法設定權限:
[Descriper(Name = "功能權限演示一", Memo = "這里是功能的備注說明", Icode ="A06" ,Super =true)] public IActionResult haha() { //假令供養恆沙聖,不如堅勇求正覺 return View(); } [Descriper(Name = "功能權限演示二", Memo = "這里是功能的備注說明")] public IActionResult hehe() { //布施、持戒、忍辱、精進、禪定、般若 return View(); }
加上自定義標簽
[Descriper(Name = "功能權限演示一", Memo = "這里是功能的備注說明", Icode ="A06" ,Super =true)]
即為Action設置了權限,當然,這個標簽的使用會配上一段解析程序,這里僅說明使用方法。
Name 表示這個權限的名稱。
Memo 用來對這個權限做個詳細的描述,以便我們在后台為用戶設置權限時,自己能更清楚設置的是什么權限。
Icode 是自己為這個權限設定的簡碼,因為權限是靠Controller和Action共同定位的,為了簡單方便,這里可用Icode來定位權限,當然,這不是必須要設定的。
Super 這個屬性是為超級管理員設置,如果設置了Super為true,就表示這個Action只能由超級管理員操作,在本系統中,超級管理員在帳號表里有個lx字段,值為“S”時,表示此帳號是超級管理員。超級管理員主要是給開發人員使用的,用來配置系統。一般給用戶使用的Action,設定權限時,不設定Super即可,它默認是false,如上面第二段代碼所示。
現在,我們看看系統中,這個權限是如何展示的,又是如何設置的。
圖1
圖中僅顯示了“功能權限演示二”,由於Super權限是不開放給一般用戶,所以關於它的權限就給它屏蔽了。
在圖中我們又看到“系統主后台”這是怎么弄的呢?
圖2
只需在Controller上面加一個標簽就可以了。這樣,在后台頁面,會把這個控制器下的所有權限歸類到一起顯示。
圖1中,又有“系統自定義權限表【標簽】”,這又是什么?
由於我們在開發系統中,會為顯示的標簽或者按鈕設定權限,所以,我們也要有對應的設置。我們只需單獨建一個Model,然后在里面配置權限即可。
例如,在本系統中是如下配置的:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Threading.Tasks; namespace OneMore.Areas.Admin.Models { [Description("系統自定義權限表【標簽】")] public class Sys_permit_label { [Descriper(Name = "總金額", Memo = "會費總金額",Icode ="l01")] public float mnall { get; set; } } [Description("系統自定義權限表【按鈕】")] public class Sys_permit_button { [Descriper(Name = "添加", Memo = "高級會員,添加服務按鈕",Icode ="b01")] public float mnall { get; set; } } }
怎么樣?設置權限簡單吧。
為了讓權限結構更加清晰,我在系統中再做了個權限分組,而后在帳號管理處又做了個帳號分組,這樣可以很方便的為帳號設定權限。
首先是權限分組:
圖3
圖4
然后是帳號分組:
圖5
圖6
填寫分組名,勾選相應的權限,即可完成權限設定。
然后就可以創建帳號,設定權限了。
圖7
圖8
圖9
創建完帳號后,我們再點擊“編輯”,專門來設定帳號的分組和權限。
圖10
帳號的操作權限就是這么設置。
在圖8里面,還有個“菜單權限設置”,這個菜單是后台管理菜單,比如,我們后台管理新聞,我們要把新聞管理的菜單納入進來,並且也要設定這個菜單的顯示權限。
圖11
這里紅色框框中的菜單,都是可以在后台配置,並且設定權限。
圖12
權限的設定和配置就是這么操作。
在使用這套系統進行開發時,只需在Action或者Model里面自己設定權限就可以了,后台會自動把你的權限都讀出來,是不是很方便呢?
演示地址:
http://om.sddwin.com/admin
打開后,直接點登錄就可以了,用戶名、密碼默認的,驗證碼做了免疫。
歡迎大家測試,並反饋bug給我,非常感激。待過幾天更完善一些后,會將源碼全部公開給大家。
我的QQ 175829085