.NET 9 + React 开发的企业级后台权限管理系统,文档齐全,轻松上手

前言

在数字化转型浪潮中,高效且安全的权限管理是后台系统的核心基石。传统方案或依赖臃肿的三方框架,或难以满足细粒度权限需求。

今天推荐一款完全独立开发、基于前沿技术栈开发的RBAC权限系统。它摒弃了现成Admin框架的束缚,以 ".NET 9 + React 18" 双引擎驱动,深度融合按钮级权限与数据权限控制,并原生支持多租户架构,为开发者与企业提供高可控性、易扩展的后台管理基座。

项目介绍

风汐管理系统一款开源的通用后台权限解决方案,由作者独立设计并实现,未使用任何第三方Admin框架。

其核心目标是为个人开发与企业提供一套高效、美观、易上手的管理系统基座。系统深度集成RBAC(基于角色的访问控制)模型,支持细粒度的按钮操作权限与数据范围权限,并内置多租户隔离机制,满足SaaS化部署需求。

项目采用严格挑选的稳定技术栈(.NET 9 + React 18),确保代码具有优秀的扩展性、可维护性与快速定制能力,在为.NET + React 技术生态贡献高质量实践范例。

项目功能

风汐管理系统提供丰富的功能模块,涵盖了从用户认证到权限管理的各个方面:

角色管理:支持创建、编辑和删除角色,分配权限。

权限管理:提供细粒度的权限控制,支持按钮级别和数据级别权限。

菜单管理:允许管理员自定义系统菜单,配置显示顺序。

日志管理:记录用户的操作日志,便于审计和问题排查。

系统监控:查看在线用户,确保信息传达及时。

多租户支持:每个租户拥有独立的数据存储,互不影响。

项目特点

1、支持多租户:每个租户的数据相互隔离,确保数据安全。

2、按钮级别权限控制:精确控制用户对页面元素的操作权限。

3、简洁高效的用户界面:采用现代化设计语言,提升用户体验。

4、模块化的系统架构:各功能模块独立开发,便于维护和扩展。

5、可读性高代码结构:代码编写遵循最佳实践,易于理解和修改。

项目技术

风汐管理系统的技术栈选用了当前最为前沿和稳定的工具与框架,具体包括:

  • .NET Core:作为后端开发的基础框架,提供了强大的性能和安全性。

  • PostgreSQL:作为数据库管理系统,支持复杂查询和大数据量处理。

  • FreeSql:用于简化数据库操作,提供ORM支持。

  • Aop:面向切面编程,用于实现横切关注点的分离。

  • Redis:用于缓存和会话管理,提高系统响应速度。

  • EventBus:事件总线机制,方便异步通信和解耦。

  • AutoMapper:对象映射工具,简化数据转换过程。

  • Serilog:日志记录库,支持多种输出方式。

  • React:前端开发框架,支持组件化开发。

  • Ant Design:UI组件库,提供丰富的组件和样式。

  • Vite:前端构建工具,优化开发体验和生产性能。

  • Sass/SCSS:CSS预处理器,增强样式的复用性和可维护性。

项目代码

1、服务自动注册

实现了注册接口

实现ISingletonDependency将以单例注入

cs 复制代码
public interface ISingletonDependency
{
}

实现ITransientDependency将以瞬时注入

cs 复制代码
public interface ITransientDependency
{
}

实现IScopedDependency将以作用域注入

cs 复制代码
public interface IScopedDependency
{
}

类上标记依赖注入DenpendencyInjectAttribute

cs 复制代码
/// <summary>
/// 自动注入,标记此特性的类会被自动注册到依赖注入容器中 <br/>
/// 如果AsSelf为false且Interfaces为空,则不会注册
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public sealed class DenpendencyInjectAttribute : Attribute
{
    /// <summary>
    /// 注册方式
    /// </summary>
    public DenpendencyType Way { get; init; } = DenpendencyType.Scoped;

    /// <summary>
    /// 是否将当前类作为自身类型注入
    /// </summary>
    public bool AsSelf { get; init; }

    /// <summary>
    /// 实现的接口类型,如果不为空且AsSelf=false,则会将当前类注册为这些接口的实现;
    /// </summary>
    public Type[]? Interfaces { get; init; }
}

2、当前租户

cs 复制代码
public interface ICurrentTenant
{
    string? TenantId { get; }
}

注入ICurrentTenant接口,在启用多租户功能时,并且请求头中含X-Tenant时;多租户中间件会自动解析X-Tenant的值到TenantId

3、如何启用多租户

在MultiTenancyConsts.cs文件中将IsEnabled改为false

cs 复制代码
public static class MultiTenancyConsts
{
    /// <summary>
    /// 是否启用多租户(不做成配置,常量硬编码更好)
    /// </summary>
    public const bool IsEnabled = true;
}

为什么使用作者常量硬编码更好?因为一个系统从开始就必须考虑好是否需要多租户模式。

项目预览

1、在线预览地址:https://crackerwork.cn

2、预览账号admin/123qwe* (请注意,预览模式下屏蔽了非GET请求,仅供查看演示)

3、项目文档

项目效果

系统通过简洁高效的用户界面和强大的功能模块,极大地提升了用户的操作体验。

以下是部分系统截图展示:

1、系统登录

2、系统首页

3、组织架构

4、系统管理

5、数据字典

6、系统监控

项目源码

GitHub: https://github.com/fancyxnet/fancyx-admin

Gitee: https://gitee.com/fancyxnet/fancyx-admin

大家可以通过克隆仓库获取源码,并根据自己的需求进行二次开发或定制化修改。

总结

风汐管理系统(fancyx-admin)代表了.NET全栈开发的深度实践。它以完全独立开发之姿,融合.NET 9的高性能与React 18的现代化交互,打造出一套功能完备(RBAC+多租户)、体验卓越、扩展自由的权限管理基座。

其核心价值不仅在于提供按钮级与数据级的精细权限控制,更在于通过模块化设计与详实文档,为大家提供了清晰的技术蓝图与定制自由。

关键词

.NET9、React18、RBAC、权限管理、多租户、PostgreSQL、FreeSql、Ant Design、Vite、Sass/SCSS、独立开发、按钮级权限、数据权限

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

相关推荐
Python私教3 天前
FastAPI+React19 ERP系统实战 第01期
react·fastapi
一笑code4 天前
vue/微信小程序/h5 实现react的boundary
微信小程序·vue·react
ZHOU_WUYI17 天前
GitHub OAuth 认证示例
flask·github·react
SuperherRo17 天前
Web攻防-XSS跨站&浏览器UXSS&突变MXSS&Vue&React&Electron框架&JQuery库&写法和版本
vue.js·electron·jquery·react·xss·mxss·uxss
飞鸟malred18 天前
nextjs入门
前端·react·nextjs
aiguangyuan23 天前
React 动态路由的使用和实现原理
react·前端开发
aiguangyuan23 天前
手写简版React-router
react·前端开发
aiguangyuan23 天前
React-router实现原理剖析
react·前端开发
aiguangyuan24 天前
React 19 新特性
react·前端开发