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

構建 ASP.NET MVC4+EF5+EasyUI+Unity2.x 後台管理系統(15):權限管理系統核心架構設計與資料模型

     編輯:關於ASP.NET

權限管理系統是企業級應用的核心基礎設施。本系統採用 MVC4 + EF5 + IOC 接口編程 架構,搭配 DWTree 權限樹控件,實現「靈活授權、細粒度控制、按鈕級權限」的企業級權限體系。本篇詳細闡述系統設計哲學、核心功能特性與 7 張核心資料表的實體關係模型。

系統設計目標與核心特性

  • 自定義操作動作:突破傳統「模組級授權」限制,支援建立、刪除、修改、審核、匯出等任意操作碼定義
  • 無限級模組管理:支援樹狀結構無限層級巢狀,自定義排序,完美適應複雜業務分類
  • 彈性操作碼分配:每個模組可按需掛載不同操作碼,不同模組擁有不同操作集合
  • 用戶生命週期管理:帳號有效期機制、過期自動失效、管理員強制停用
  • 多重身份支援:一用戶多角色、一角色多用戶(多對多),靈活適應跨部門兼職場景
  • 按鈕級權限控制:前端選單與按鈕依操作碼權限動態顯示/隱藏,後端 Action 過濾器二次驗證
  • 批量授權效率:角色為授權主體,支援大量用戶同步授權(如全公司員工統一權限)

七大核心資料表詳細設計

#資料表中文名稱核心功能關鍵欄位
1SysModule模組管理系統選單樹狀結構,支援無限級巢狀Id, ParentId, Name, Url, Icon, Sort, IsVisible
2SysUser用戶表系統登入憑證與基本資料Id, UserName, Password, TrueName, Email, State, ValidTime
3SysRole角色群組角色定義,授權的主體單位Id, Name, Description, CreateTime
4SysModuleOperate模組操作碼定義每個模組可用的操作動作Id, Name, KeyCode, ModuleId, IsValid, Sort
5SysRoleSysUser用戶角色關聯用戶與角色多對多關聯SysUserId, SysRoleId
6SysRight角色權限角色擁有的模組權限(模組級授權)Id, ModuleId, RoleId, RightFlag
7SysRightOperate權限操作碼角色在特定模組擁有的操作碼(按鈕級授權)Id, RightId, KeyCode, IsValid

實體關係模型圖解

權限系統 ER 圖

關係邏輯文字描述

SysModule (1) ──< (N) SysModuleOperate
    │                        │
    │                        │
    ▼                        ▼
SysRight (N) ──< (1) SysRole  (N) >── (N) SysRoleSysUser
    │
    │
    ▼
SysRightOperate (N) >── (1) SysModuleOperate

用戶 → 角色 → 模組權限 → 操作碼權限 → UI 元素顯示/隱藏 + Action 執行驗證

權限判斷完整邏輯鏈

  1. 選單顯示:用戶擁有該模組任一操作碼權限 → 顯示選單項目
  2. 按鈕顯示:用戶擁有該模組特定操作碼(如 Create) → 顯示對應按鈕(如「新增」)
  3. 後端驗證:Action 標註 [OperateAuthorize(KeyCode="Create")] 過濾器攔截驗證
  4. 資料權限:擴展支援機構/部門/個人資料範圍過濾(預留擴充點)

資料庫建表 SQL 關鍵片段

-- 模組表(支援遞迴樹狀結構)
CREATE TABLE SysModule (
    Id varchar(50) PRIMARY KEY,
    ParentId varchar(50) NULL,
    Name varchar(100) NOT NULL,
    Url varchar(200),
    Icon varchar(50),
    Sort int DEFAULT 0,
    IsVisible bit DEFAULT 1,
    CreateTime datetime DEFAULT GETDATE()
);

-- 操作碼表(掛載於模組)
CREATE TABLE SysModuleOperate (
    Id varchar(50) PRIMARY KEY,
    ModuleId varchar(50) NOT NULL REFERENCES SysModule(Id),
    Name varchar(50) NOT NULL,        -- 顯示名稱:新增、編輯、刪除
    KeyCode varchar(50) NOT NULL,     -- 程式碼識別碼:Create、Edit、Delete
    IsValid bit DEFAULT 0,            -- 是否需額外驗證邏輯
    Sort int DEFAULT 0
);

-- 角色權限表(角色-模組)
CREATE TABLE SysRight (
    Id varchar(50) PRIMARY KEY,
    RoleId varchar(50) NOT NULL REFERENCES SysRole(Id),
    ModuleId varchar(50) NOT NULL REFERENCES SysModule(Id),
    RightFlag bit DEFAULT 1           -- 1=授權, 0=撤銷
);

-- 權限操作碼表(角色-模組-操作碼)
CREATE TABLE SysRightOperate (
    Id varchar(50) PRIMARY KEY,
    RightId varchar(50) NOT NULL REFERENCES SysRight(Id),
    KeyCode varchar(50) NOT NULL,     -- 對應 SysModuleOperate.KeyCode
    IsValid bit DEFAULT 1
);

架構優勢總結

維度傳統粗粒度權限本系統細粒度權限
授權單位模組/選單操作碼
控制精度「有/無」模組存取權「可新增/可刪除/可審核/可匯出」
前端適配整頁顯示/隱藏按鈕、欄位、操作欄逐項控制
擴充性新增操作需修改程式碼資料驅動,無需改碼即可新增操作類型
維護成本權限矩陣龐大難管理角色為中心,授權邏輯清晰直觀

後續發展規劃

本系列後續將涵蓋:MVC 過濾器權限攔截實作、T4 程式碼生成器、報表引擎整合、檔案上傳管理、系統參數配置等企業級應用必備模組,構建開箱即用的後台管理框架。


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

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