.NET 9 + React 開發(fā)的企業(yè)級后臺權(quán)限管理系統(tǒng),文檔齊全,輕松上手
前言
在數(shù)字化轉(zhuǎn)型浪潮中,高效且安全的權(quán)限管理是后臺系統(tǒng)的核心基石。傳統(tǒng)方案或依賴臃腫的三方框架,或難以滿足細(xì)粒度權(quán)限需求。
今天推薦一款完全獨(dú)立開發(fā)、基于前沿技術(shù)棧開發(fā)的RBAC權(quán)限系統(tǒng)。它摒棄了現(xiàn)成Admin框架的束縛,以 ".NET 9 + React 18" 雙引擎驅(qū)動(dòng),深度融合按鈕級權(quán)限與數(shù)據(jù)權(quán)限控制,并原生支持多租戶架構(gòu),為開發(fā)者與企業(yè)提供高可控性、易擴(kuò)展的后臺管理基座。
項(xiàng)目介紹
風(fēng)汐管理系統(tǒng)一款開源的通用后臺權(quán)限解決方案,由作者獨(dú)立設(shè)計(jì)并實(shí)現(xiàn),未使用任何第三方Admin框架。
其核心目標(biāo)是為個(gè)人開發(fā)與企業(yè)提供一套高效、美觀、易上手的管理系統(tǒng)基座。系統(tǒng)深度集成RBAC(基于角色的訪問控制)模型,支持細(xì)粒度的按鈕操作權(quán)限與數(shù)據(jù)范圍權(quán)限,并內(nèi)置多租戶隔離機(jī)制,滿足SaaS化部署需求。
項(xiàng)目采用嚴(yán)格挑選的穩(wěn)定技術(shù)棧(.NET 9 + React 18),確保代碼具有優(yōu)秀的擴(kuò)展性、可維護(hù)性與快速定制能力,在為.NET + React 技術(shù)生態(tài)貢獻(xiàn)高質(zhì)量實(shí)踐范例。

項(xiàng)目功能
風(fēng)汐管理系統(tǒng)提供豐富的功能模塊,涵蓋了從用戶認(rèn)證到權(quán)限管理的各個(gè)方面:
角色管理:支持創(chuàng)建、編輯和刪除角色,分配權(quán)限。
權(quán)限管理:提供細(xì)粒度的權(quán)限控制,支持按鈕級別和數(shù)據(jù)級別權(quán)限。
菜單管理:允許管理員自定義系統(tǒng)菜單,配置顯示順序。
日志管理:記錄用戶的操作日志,便于審計(jì)和問題排查。
系統(tǒng)監(jiān)控:查看在線用戶,確保信息傳達(dá)及時(shí)。
多租戶支持:每個(gè)租戶擁有獨(dú)立的數(shù)據(jù)存儲,互不影響。
項(xiàng)目特點(diǎn)
1、支持多租戶:每個(gè)租戶的數(shù)據(jù)相互隔離,確保數(shù)據(jù)安全。
2、按鈕級別權(quán)限控制:精確控制用戶對頁面元素的操作權(quán)限。
3、簡潔高效的用戶界面:采用現(xiàn)代化設(shè)計(jì)語言,提升用戶體驗(yàn)。
4、模塊化的系統(tǒng)架構(gòu):各功能模塊獨(dú)立開發(fā),便于維護(hù)和擴(kuò)展。
5、可讀性高代碼結(jié)構(gòu):代碼編寫遵循最佳實(shí)踐,易于理解和修改。
項(xiàng)目技術(shù)
風(fēng)汐管理系統(tǒng)的技術(shù)棧選用了當(dāng)前最為前沿和穩(wěn)定的工具與框架,具體包括:
-
.NET Core:作為后端開發(fā)的基礎(chǔ)框架,提供了強(qiáng)大的性能和安全性。
-
PostgreSQL:作為數(shù)據(jù)庫管理系統(tǒng),支持復(fù)雜查詢和大數(shù)據(jù)量處理。
-
FreeSql:用于簡化數(shù)據(jù)庫操作,提供ORM支持。
-
Aop:面向切面編程,用于實(shí)現(xiàn)橫切關(guān)注點(diǎn)的分離。
-
Redis:用于緩存和會(huì)話管理,提高系統(tǒng)響應(yīng)速度。
-
EventBus:事件總線機(jī)制,方便異步通信和解耦。
-
AutoMapper:對象映射工具,簡化數(shù)據(jù)轉(zhuǎn)換過程。
-
Serilog:日志記錄庫,支持多種輸出方式。
-
React:前端開發(fā)框架,支持組件化開發(fā)。
-
Ant Design:UI組件庫,提供豐富的組件和樣式。
-
Vite:前端構(gòu)建工具,優(yōu)化開發(fā)體驗(yàn)和生產(chǎn)性能。
-
Sass/SCSS:CSS預(yù)處理器,增強(qiáng)樣式的復(fù)用性和可維護(hù)性。
項(xiàng)目代碼
1、服務(wù)自動(dòng)注冊
實(shí)現(xiàn)了注冊接口
實(shí)現(xiàn)ISingletonDependency將以單例注入
public interface ISingletonDependency
{
}
實(shí)現(xiàn)ITransientDependency將以瞬時(shí)注入
public interface ITransientDependency
{
}
實(shí)現(xiàn)IScopedDependency將以作用域注入
public interface IScopedDependency
{
}
類上標(biāo)記依賴注入DenpendencyInjectAttribute
/// <summary>
/// 自動(dòng)注入,標(biāo)記此特性的類會(huì)被自動(dòng)注冊到依賴注入容器中 <br/>
/// 如果AsSelf為false且Interfaces為空,則不會(huì)注冊
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public sealed class DenpendencyInjectAttribute : Attribute
{
/// <summary>
/// 注冊方式
/// </summary>
public DenpendencyType Way { get; init; } = DenpendencyType.Scoped;
/// <summary>
/// 是否將當(dāng)前類作為自身類型注入
/// </summary>
public bool AsSelf { get; init; }
/// <summary>
/// 實(shí)現(xiàn)的接口類型,如果不為空且AsSelf=false,則會(huì)將當(dāng)前類注冊為這些接口的實(shí)現(xiàn);
/// </summary>
public Type[]? Interfaces { get; init; }
}
2、當(dāng)前租戶
public interface ICurrentTenant
{
string? TenantId { get; }
}
注入ICurrentTenant接口,在啟用多租戶功能時(shí),并且請求頭中含X-Tenant時(shí);多租戶中間件會(huì)自動(dòng)解析X-Tenant的值到TenantId
3、如何啟用多租戶
在MultiTenancyConsts.cs文件中將IsEnabled改為false
public static class MultiTenancyConsts
{
/// <summary>
/// 是否啟用多租戶(不做成配置,常量硬編碼更好)
/// </summary>
public const bool IsEnabled = true;
}
為什么使用作者常量硬編碼更好?因?yàn)橐粋€(gè)系統(tǒng)從開始就必須考慮好是否需要多租戶模式。
項(xiàng)目預(yù)覽
1、在線預(yù)覽地址:https://crackerwork.cn
2、預(yù)覽賬號admin/123qwe* (請注意,預(yù)覽模式下屏蔽了非GET請求,僅供查看演示)
3、項(xiàng)目文檔

項(xiàng)目效果
系統(tǒng)通過簡潔高效的用戶界面和強(qiáng)大的功能模塊,極大地提升了用戶的操作體驗(yàn)。
以下是部分系統(tǒng)截圖展示:
1、系統(tǒng)登錄

2、系統(tǒng)首頁

3、組織架構(gòu)

4、系統(tǒng)管理

5、數(shù)據(jù)字典

6、系統(tǒng)監(jiān)控

項(xiàng)目源碼
GitHub: https://github.com/fancyxnet/fancyx-admin
Gitee: https://gitee.com/fancyxnet/fancyx-admin
大家可以通過克隆倉庫獲取源碼,并根據(jù)自己的需求進(jìn)行二次開發(fā)或定制化修改。
總結(jié)
風(fēng)汐管理系統(tǒng)(fancyx-admin)代表了.NET全棧開發(fā)的深度實(shí)踐。它以完全獨(dú)立開發(fā)之姿,融合.NET 9的高性能與React 18的現(xiàn)代化交互,打造出一套功能完備(RBAC+多租戶)、體驗(yàn)卓越、擴(kuò)展自由的權(quán)限管理基座。
其核心價(jià)值不僅在于提供按鈕級與數(shù)據(jù)級的精細(xì)權(quán)限控制,更在于通過模塊化設(shè)計(jì)與詳實(shí)文檔,為大家提供了清晰的技術(shù)藍(lán)圖與定制自由。
關(guān)鍵詞
.NET9、React18、RBAC、權(quán)限管理、多租戶、PostgreSQL、FreeSql、Ant Design、Vite、Sass/SCSS、獨(dú)立開發(fā)、按鈕級權(quán)限、數(shù)據(jù)權(quán)限
最后
如果你覺得這篇文章對你有幫助,不妨點(diǎn)個(gè)贊支持一下!你的支持是我繼續(xù)分享知識的動(dòng)力。如果有任何疑問或需要進(jìn)一步的幫助,歡迎隨時(shí)留言。
也可以加入微信公眾號[DotNet技術(shù)匠] 社區(qū),與其他熱愛技術(shù)的同行一起交流心得,共同成長!


浙公網(wǎng)安備 33010602011771號