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 雪花算法 |