首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

ASP.NET 網站後台管理系統設計:從零開始的完整思路與表結構

     編輯:程式設計疑難解答

核心設計原則

後台管理系統本質是基於角色的訪問控制 (RBAC) 應用。核心實體:用戶、角色、權限、菜單、日誌。遵循「高內聚、低耦合」,採用分層架構(UI → BLL → DAL → DB)。

數據庫表結構設計

1. 用戶表

CREATE TABLE Sys_User (
    UserID INT PRIMARY KEY IDENTITY,
    UserName NVARCHAR(50) NOT NULL UNIQUE,
    PasswordHash NVARCHAR(256) NOT NULL, -- 存儲加密後的密碼
    Email NVARCHAR(100),
    Phone NVARCHAR(20),
    RealName NVARCHAR(50),
    IsAdmin BIT DEFAULT 0, -- 是否超級管理員
    IsDeleted BIT DEFAULT 0, -- 軟刪除標記
    CreateTime DATETIME DEFAULT GETDATE(),
    LastLoginTime DATETIME
);

2. 角色表

CREATE TABLE Sys_Role (
    RoleID INT PRIMARY KEY IDENTITY,
    RoleName NVARCHAR(50) NOT NULL UNIQUE,
    Description NVARCHAR(200),
    IsSystem BIT DEFAULT 0 -- 系統內置角色不可刪除
);

3. 權限/菜單表

CREATE TABLE Sys_Menu (
    MenuID INT PRIMARY KEY IDENTITY,
    ParentID INT DEFAULT 0, -- 0 為頂級菜單
    Title NVARCHAR(50) NOT NULL,
    Url NVARCHAR(200), -- 前端路由路徑
    Icon NVARCHAR(50), -- 圖標 class
    SortOrder INT DEFAULT 0,
    IsVisible BIT DEFAULT 1,
    PermissionCode NVARCHAR(50) -- 權限標識,如 "user:list"
);

4. 用戶-角色關聯表

CREATE TABLE Sys_User_Role (
    UserID INT NOT NULL,
    RoleID INT NOT NULL,
    PRIMARY KEY (UserID, RoleID),
    FOREIGN KEY (UserID) REFERENCES Sys_User(UserID),
    FOREIGN KEY (RoleID) REFERENCES Sys_Role(RoleID)
);

5. 角色-菜單/權限關聯表

CREATE TABLE Sys_Role_Menu (
    RoleID INT NOT NULL,
    MenuID INT NOT NULL,
    PRIMARY KEY (RoleID, MenuID),
    FOREIGN KEY (RoleID) REFERENCES Sys_Role(RoleID),
    FOREIGN KEY (MenuID) REFERENCES Sys_Menu(MenuID)
);

6. 登錄日誌表

CREATE TABLE Sys_LoginLog (
    LogID BIGINT PRIMARY KEY IDENTITY,
    UserID INT NOT NULL,
    LoginTime DATETIME DEFAULT GETDATE(),
    IPAddress NVARCHAR(50),
    UserAgent NVARCHAR(500),
    IsSuccess BIT,
    FailReason NVARCHAR(200)
);

核心功能模塊

  1. 認證授權:登錄驗證(密碼哈希比對)、JWT/Cookie Ticket 生成、權限解析注入 HttpContext。
  2. 用戶管理:增刪改查、重置密碼、分配角色、啟用/禁用。
  3. 角色權限配置:樹形菜單勾選分配、權限代碼級別控制(按鈕級)。
  4. 日誌審計:登錄日誌、操作日誌(AOP 切面自動記錄關鍵業務操作)。
  5. 系統設置:參數配置、字典數據維護、文件存儲配置。

前端架構建議

  • 管理端框架:Vue 3 + Element Plus / React + Ant Design / Angular + NG-ZORRO。
  • 路由守衛:根據後端返回的權限代碼動態生成路由表、控制按鈕顯示。
  • 請求攔截:統一處理 Token 刷新、錯誤碼提示、Loading 狀態。

安全加固清單

  • 密碼:BCrypt/Argon2 加鹽哈希,絕不存明文。
  • 傳輸:全站 HTTPS,Cookie 設置 Secure/HttpOnly/SameSite。
  • 防注入:參數化查詢 / EF Core LINQ,拒絕拼接 SQL。
  • 防 XSS:輸出編碼,CSP 頭配置。
  • 防 CSRF:Anti-forgery Token / SameSite Cookie。
  • 暴力破解:登錄失敗計數 + 驗證碼 / 賬戶鎖定。

快速原型生成工具

推薦使用代碼生成器(如 CodeSmith、MyGeneration、ASP.NET Boilerplate (ABP)、Furion 模板)根據上述表結構一鍵生成 DAL/BLL/Controller/View 代碼,專注業務邏輯開發。

總結

後台管理系統設計的核心在於RBAC 權限模型落地。從用戶、角色、菜單三張核心表及其關聯表入手,配合分層架構、現代前端框架、安全最佳實踐,即可構建靈活、安全、可維護的後台系統。切勿過度設計,先跑通最小閉環再迭代擴展。

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