EasyAdminBlazor

EasyAdminBlazor 是一个基于 .NET 10 + Blazor 技术栈的企业级后台管理框架,UI 层由 BootstrapBlazor 组件库驱动,数据层由 FreeSql 提供支持。功能全面、开箱即用、扩展灵活,特别适合个人开发者接私活、做外包项目。

🌐 官方网站https://easyadmin.wang-zhan.com.cn


✨ 核心特性

🧩 模块化架构

核心功能与扩展功能拆得比较开,需要用啥就装啥 NuGet 包,不会一上来就塞一堆用不上的东西:

模块 说明
用户管理 用户增删改查、状态管理、多端登录检测
角色管理 基于角色的权限分配、管理员标识
菜单管理 无限级菜单树、按钮级权限、可视化配置
组织架构 树形部门管理、数据权限隔离
配置管理 系统参数动态配置,支持数据库存储
字典管理 通用字典表,支持下拉/多选
日志管理 操作日志、登录日志、错误日志,自动记录
文件管理 本地文件上传/下载、图片压缩/WebP 转换、分组管理

🏗️ 分层架构(按需)

默认布局很精简:业务实体放在业务项目里就能直接跑。如果项目规模大(有接口、有前台、有后台多个入口),可以自行拆层——新增一个共享层(XXX.Application / XXX.Core)放实体、DTO、公共服务,多个宿主项目各自引用。框架不限制分层方式,由你根据项目情况决定(详见 开始一个新模块 的分层说明)。

🌐 多租户(SaaS)

  • 独立数据库:每个租户用独立的数据库,数据物理隔离
  • 按域名解析:系统根据请求的 Host 自动识别当前租户,零配置切换
  • 菜单权限隔离:每个租户可以独立分配自己能用的功能菜单
  • 文件存储隔离:上传文件按租户 code 分目录存放

🌍 多语言

内置本地化支持,界面语言随时切换,国际化不用愁。

💬 实时聊天

基于 SignalR 搞的站内即时通讯,消息实时推送、未读提醒都安排上了。

📋 计划任务

集成了 FreeScheduler,支持 Cron 表达式和 [Scheduler] 特性标注,还有可视化任务管理界面。

🔌 可插拔扩展

想加啥功能装对应的扩展包就行:

扩展 功能
EasyAdminBlazor.Mail SMTP 邮件发送
EasyAdminBlazor.Captcha 表单验证码
EasyAdminBlazor.Redis Redis 缓存/消息持久化
EasyAdminBlazor.FusionCache 混合缓存加速
EasyAdminBlazor.Chat 实时聊天插件
EasyAdminBlazor.MultiTenant 多租户支持
EasyAdminBlazor.Scheduler 后台任务调度
EasyAdminBlazor.HtmlEditor TinyMCE 富文本编辑器
EasyAdminBlazor.WeChat 微信小程序、微信支付集成

🛡️ 安全特性

  • 密码用 PBKDF2 加密存储
  • Cookie 认证 + AES 加密
  • CSRF 防护(Antiforgery Token)
  • 管理后台路由用 AdminRouteSecret 混淆保护
  • 操作日志审计,谁干了啥都记下来
  • 登录失败次数限制 + 验证码防暴力破解

🏗️ 技术栈

层级 技术
框架 .NET 10
UI Blazor Server / BootstrapBlazor
ORM FreeSql(支持 MySQL、Sqlite、PostgreSQL、SQL Server 等)
实时通信 SignalR
认证 Cookie Authentication + ASP.NET Core Identity
缓存 IMemoryCache / Redis / FusionCache
任务调度 FreeScheduler
图片处理 SixLabors.ImageSharp
ID 生成 Yitter 雪花算法