首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

構建 ASP.NET MVC4+EF5+EasyUI+Unity2.x 後台管理系統(18):權限系統資料流程實戰演練

     編輯:關於ASP.NET

在權限管理系統開發中,理解資料表之間的關聯與資料流向至關重要。本篇將透過實際插入測試資料,完整演示從模組定義、操作碼配置、角色建立、權限授權到用戶指派的完整資料流程,幫助開發者建立清晰的系統心智模型。

核心資料表架構回顧

系統採用 7 張核心資料表構建細粒度權限體系:

資料表功能描述關鍵關聯
SysModule功能模組管理(支援無限級樹狀結構)根節點
SysUser系統用戶基本資料葉節點
SysRole角色群組定義橋接用戶與權限
SysModuleOperate模組操作碼定義(如 Create、Edit、Delete、Query 等)掛載於 SysModule
SysRight角色-模組授權關聯(角色擁有哪些模組權限)Role + Module
SysRightOperate角色-操作碼授權(角色在特定模組擁有哪些操作權限)Right + Operate
SysRoleSysUser用戶-角色多對多關聯User + Role

完整資料插入演示流程

步驟 1:定義模組操作碼 (SysModuleOperate)

以「樣例程式」模組為例,定義 7 種基本操作:

INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) VALUES 
('BaseSampleCreate','建立','Create','BaseSample',0,0),
('BaseSampleDelete','刪除','Delete','BaseSample',0,0),
('BaseSampleDetails','詳細','Details','BaseSample',0,0),
('BaseSampleEdit','編輯','Edit','BaseSample',0,0),
('BaseSampleExport','匯出','Export','BaseSample',0,0),
('BaseSampleQuery','查詢','Query','BaseSample',0,0),
('BaseSampleSave','儲存','Save','BaseSample',0,0);

說明:ModuleId 對應 SysModule 表的模組 ID,IsValid 表示該操作是否需額外驗證邏輯。

步驟 2:建立角色群組 (SysRole)

INSERT INTO [SysRole] ([Id],[Name],[Description],[CreateTime],[CreatePerson]) VALUES 
('administrator','超級管理員','全部授權','2012-10-01 12:00:00','Administrator');

步驟 3:授權模組給角色 (SysRight)

將「樣例程式」與「BaseSample」兩個模組授權給超級管理員:

INSERT INTO [SysRight] ([Id],[ModuleId],[RoleId],[Rightflag]) VALUES 
('administratorSampleFile','SampleFile','administrator',1),
('administratorBaseSample','BaseSample','administrator',1);

Rightflag=1 表示啟用該授權。

步驟 4:授權具體操作碼給角色 (SysRightOperate)

這是權限控制的最細粒度層級——將 7 個操作碼全數授權:

INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) VALUES 
('administratorBaseSampleCreate','administratorBaseSample','Create',1),
('administratorBaseSampleDelete','administratorBaseSample','Delete',1),
('administratorBaseSampleDetails','administratorBaseSample','Details',1),
('administratorBaseSampleEdit','administratorBaseSample','Edit',1),
('administratorBaseSampleExport','administratorBaseSample','Export',1),
('administratorBaseSampleQuery','administratorBaseSample','Query',1),
('administratorBaseSampleSave','administratorBaseSample','Save',1);

關鍵邏輯:擁有 Create 操作碼權限的角色,才能在介面上看到「新增」按鈕並執行建立操作。

步驟 5:建立系統用戶 (SysUser)

INSERT INTO [SysUser] ([Id],[UserName],[Password],[TrueName],[MobileNumber],[PhoneNumber],[QQ],[EmailAddress],
    [Province],[City],[Village],[Address],[State],[CreateTime],[CreatePerson],[Sex],[Birthday],[JoinDate],
    [Marital],[Political],[Nationality],[Native],[School],[Professional],[Degree],[DepId],[PosId],
    [Expertise],[JobState],[Photo],[Attach]) VALUES 
('admin','admin','01-92-02-3A-7B-BD-73-25-05-16-F0-69-DF-18-B5-00','系統管理員',
 NULL,'06638888888','324345345','ymnets@sina.com','MSN:ymnets',
 '440000','440100','440101','小小村落',1,'2012-11-18 15:40:00','admin','男',
 '1900-05-18','2013-01-01','未婚','中國','中國','廣東揭陽','美國哈佛大學','計算機工程','碩士',
 '20000','20001','勤勞向學,為人友善,樂於助人','在職',NULL,NULL);

注意:密碼欄位儲存為加密雜湊值(01-92-02-3A-7B-BD-73-25-05-16-F0-69-DF-18-B5-00),實際驗證時需使用相同加密演算法比對。

步驟 6:指派角色給用戶 (SysRoleSysUser)

INSERT INTO [SysRoleSysUser] ([SysUserId],[SysRoleId]) VALUES ('admin','administrator');

權限驗證邏輯串聯圖解

用戶登入 
  → 讀取 SysRoleSysUser 取得角色 
  → 讀取 SysRight 取得角色擁有的模組權限 
  → 讀取 SysRightOperate 取得各模組下的操作碼權限 
  → 前端依權限動態顯示選單與按鈕 
  → 後端 Action 透過過濾器驗證操作碼權限

系統初始化標準流程總結

  1. 新增功能模組
  2. 新增模組操作碼
  3. 新增角色群組
  4. 授權模組給角色
  5. 授權操作碼給角色
  6. 新增用戶帳號
  7. 指派角色給用戶

原始碼獲取

完整專案原始碼已發布於第 17 講,可至 QQ 群共享(37509873)下載。第 17 講留言區另有修正說明,請一併參考。


作者:YmNets
出處:https://ymnets.cnblogs.com/

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved