目前各類的許可權設計已經困擾了我們好久,對於MVC,下面我將通過ActionFilter來擴充我們的許可權認證,以下樣本是從我的一個課程中心項目中提取出來,希望對各位初學者起到拋磚引玉的作用。
下面首先來設計我們的許可權控制的資料庫層。
下面我來依次介紹每個欄位的說明
RoleGroup 許可權組表 該表主要對系統許可權進行分組,我們的使用者可以直接賦予該分組,擁有所有該組許可權
RoleID 許可權組ID 例:01
RoleName 許可權組名稱 例:系統管理員
RoleState 組狀態 (是否啟用) 例:True
RoleGroupAppList 表 組許可權對應表 該表主要複製每個許可權組對應的許可權詳細列表
ID ID主鍵 例:1
RoleID 對應許可權組的ID 例:01
SysAppID 對應的詳細許可權組ID 例:01
StartTime 該許可權使用的起始日期 例:2009-01-01 ,該欄位屬性預設為:all ,即不限制起始日期
EndTime 該許可權使用的結束日期 例:2009-01-01 ,該欄位屬性預設為:all ,即不限制結束日期
SysAppCate 表 該表主要是對SysAppList詳細許可權表做分類,當我們的許可權頁面特別多的時候,該表主要為了方便管理。可省略
SysAppCateID 大類ID 例:01
SysAppCateName 大類名稱 例:新聞管理
SysAppCateEName 大類英文名
SysAppList 許可權詳細表 該表主要負責所有許可權的基礎列表
SysAppID 許可權ID 例:01
SysAppCateID 許可權大類ID 例:01
SysAppName 許可權名稱 例:新聞添加
SysAppEName 許可權英文名稱
SysAppController 許可權對應的Controller 例:News
SysAppAction 許可權對應的Action 例:Add 本許可權設計針對對Action許可權限制
IsView 是否為可見 例:True 該欄位的設計主要是便於背景管理和設定,因為有部分Action是沒有View層的,比如Post,但是在後台許可權管理中我們又要用到他。
好了,建庫部分就到這裡了,下一篇我會介紹邏輯部分,其中會涉及到Repository模式,緩衝,自訂的AuthorizeAttribute。