EasyAdminBlazor 2.4.0-preview.5
dotnet add package EasyAdminBlazor --version 2.4.0-preview.5
NuGet\Install-Package EasyAdminBlazor -Version 2.4.0-preview.5
<PackageReference Include="EasyAdminBlazor" Version="2.4.0-preview.5" />
<PackageVersion Include="EasyAdminBlazor" Version="2.4.0-preview.5" />
<PackageReference Include="EasyAdminBlazor" />
paket add EasyAdminBlazor --version 2.4.0-preview.5
#r "nuget: EasyAdminBlazor, 2.4.0-preview.5"
#:package EasyAdminBlazor@2.4.0-preview.5
#addin nuget:?package=EasyAdminBlazor&version=2.4.0-preview.5&prerelease
#tool nuget:?package=EasyAdminBlazor&version=2.4.0-preview.5&prerelease
EasyAdminBlazor
EasyAdminBlazor 是一个基于 .NET 10 + Blazor 技术栈的企业级后台管理框架,由 BootstrapBlazor 组件库驱动 UI,FreeSql 提供数据访问能力。功能全面、开箱即用、扩展灵活,是个人开发者接私活、外包项目的利器。
🌐 官方网站:https://easyadmin.wang-zhan.com.cn
✨ 核心特性
🧩 模块化架构
核心功能与扩展功能解耦,通过 NuGet 扩展按需安装,避免功能臃肿:
| 模块 | 说明 |
|---|---|
| 用户管理 | 用户增删改查、状态管理、多端登录检测、批量设置角色/部门/重置密码 |
| 角色管理 | 基于角色的权限分配、管理员标识、删除引用保护 |
| 菜单管理 | 无限级菜单树、按钮级权限、可视化配置、菜单收藏、隐藏控制 |
| 组织架构 | 树形部门管理、多类型(集团/公司/部门/供应商)、数据权限隔离、负责人绑定、组织结构图 |
| 配置管理 | 系统参数动态配置,支持数据库存储,第三方服务参数集中管理 |
| 字典管理 | 通用字典表,支持下拉/多选,批量导入导出 |
| 日志管理 | 操作日志(字段级变更明细)、登录日志(IP/城市/浏览器/设备)、错误日志(TraceId) |
| 文件管理 | 本地文件上传/下载、图片压缩/WebP 转换、分组管理、私有文件受控下载 |
| 代码生成器 | 可视化生成 CRUD 页面(仅本地开发环境) |
| 打印模板设计器 | 可视化设计打印模板、与 AdminTable 联动、一键打印 |
| 消息中心 | 站内信、系统通知 |
| 回收站 | 软删除恢复、批量还原、彻底删除(二次确认) |
🚀 应用在线升级(扩展 EasyAdminBlazor.Upgrade)
管理员在后台点「检查更新 → 立即升级」,系统自动停服务、备份、替换文件、启动并健康检查;失败自动回滚,用户不需要重新登录。
- 版本分离:应用版本来自宿主
<Version>,框架版本独立读取,页脚同时显示 - 逐版本增量:1.0 → 1.1 → 1.2 依次升完,无需手工跳版本
- 发布即出包:Release 发布一次,增量包(约 1~2 MB)自动落在
updates/v<版本>/ - 两种来源:本地目录(人工拷包)与 HTTPS 发布索引(客户自助升级)
- 数据零风险:上传文件、日志、密钥、配置、数据库永不写入/删除
- 安全校验:包 SHA256 + 文件哈希 + 基线哈希三重校验,拒绝 ZIP 路径穿越
- 失败只回滚当前一步,并保证应用重新拉起
- 过程可视化:全屏遮罩显示进度,完成后倒计时自动刷新
- 部署适配:支持
Direct/WindowsService/Systemd/External;IIS 进程内托管时自动禁用 - 独立扩展:不引用则页脚、
/health、发布钩子都不存在,老项目行为不变
详细说明见 应用升级。
🌐 多租户(SaaS)
- 独立数据库:每个租户使用独立数据库,数据物理隔离
- 按域名解析:根据请求的 Host 自动识别当前租户,零配置切换
- 菜单权限隔离:每个租户可独立分配功能菜单
- 文件存储隔离:上传文件按租户 code 分目录存储
- 缓存与锁隔离:内存缓存 / Redis 键 / 分布式锁统一带
tenant:{code}:前缀
🌍 多语言
内置本地化支持,可动态切换界面语言,满足国际化需求。
🎨 主题色切换
内置默认蓝、清新绿、典雅紫、活力橙、中国红 5 种主色,切换即时生效并持久化。
💬 实时聊天
基于 SignalR 实现站内即时通讯,支持消息实时推送、未读提醒。
📋 计划任务
集成 FreeScheduler,支持 Cron 表达式和特性标注 [Scheduler],可视化任务管理。
⚖️ 轻量审批(扩展)
状态机 + 审批记录表,支持固定 2~3 级串联审批。支持或签、撤回、驳回、转交、轮次与时间线;条件更新保证并发安全,全流程事务化,通知在事务提交后发送。审批人来源支持部门负责人 / 角色 / 指定用户 / 单据字段。
🔌 可插拔扩展
通过扩展项目按需添加能力:
| 扩展 | 功能 |
|---|---|
EasyAdminBlazor.Mail |
SMTP / SendCloud / 腾讯云 SES 邮件发送,可按调用指定服务商 |
EasyAdminBlazor.Captcha |
表单验证码 |
EasyAdminBlazor.Redis |
Redis 缓存/消息持久化 |
EasyAdminBlazor.FusionCache |
混合缓存加速 |
EasyAdminBlazor.Chat |
实时聊天插件 |
EasyAdminBlazor.MultiTenant |
多租户支持 |
EasyAdminBlazor.Scheduler |
后台任务调度 |
EasyAdminBlazor.HtmlEditor |
TinyMCE 富文本编辑器 |
EasyAdminBlazor.WeChat |
微信小程序、微信支付集成 |
EasyAdminBlazor.Approval |
轻量多级审批(状态机) |
EasyAdminBlazor.Upgrade |
应用在线升级(逐版本增量、自动回滚) |
🛡️ 安全特性
- 密码 PBKDF2 加密存储(带版本与迭代次数)
- Cookie 认证 + AES 加密
- CSRF 防护(Antiforgery Token)
- 管理后台路由加密(AdminRouteSecret)
- 操作日志审计,字段级变更明细可追溯
- 登录失败次数限制 + 验证码防暴力破解
- 登录票据绑定签发租户与时间,Host 白名单校验防止伪造切租户
- SSRF 加固:逐跳地址校验、禁止 HTTPS 降级、锁定已校验 IP 防 DNS Rebinding
- XSS 净化:站内信、审批意见、聊天 Markdown 统一处理
- 私有文件受控下载接口,校验登录、租户、文件记录与授权
- 在线升级三重校验:包 SHA256、包内文件哈希、基线哈希
🏗️ 技术栈
| 层级 | 技术 |
|---|---|
| 框架 | .NET 10 |
| UI | Blazor Server / BootstrapBlazor |
| ORM | FreeSql(支持 MySQL、Sqlite、PostgreSQL、SQL Server 等) |
| 实时通信 | SignalR |
| 认证 | Cookie Authentication(自定义加密 Cookie) |
| 缓存 | IMemoryCache / Redis / FusionCache |
| 任务调度 | FreeScheduler |
| 图片处理 | SkiaSharp |
| ID 生成 | Yitter 雪花算法 |
| Excel | MiniExcel |
| 富文本 | TinyMCE |
🚀 快速开始
环境要求
- .NET 10 SDK
- 数据库:用模板创建的新项目默认使用 SQLite,零配置即可跑起来;生产环境再切换到 MySQL 8.0+、SQL Server、PostgreSQL 等 FreeSql 支持的数据库
- (可选)Redis(聊天、分布式缓存等扩展功能需要)
全新项目
# 安装模板包
dotnet new install EasyAdminBlazor.Templates
# 使用模板创建项目
dotnet new easyadmin -n MyProjectName
# 进入项目运行
cd MyProjectName
dotnet run
运行后打开后台登录页:http://localhost:端口/admin/i4ByMAX4(i4ByMAX4 是默认的 AdminRouteSecret 安全码,端口以控制台启动日志里的监听地址为准)。默认账号 admin,密码 123yyq。
📚 文档与源码
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BootstrapBlazor (>= 10.10.2)
- BootstrapBlazor.FontAwesome (>= 10.0.3)
- BootstrapBlazor.TableExport (>= 10.0.3)
- DiffPlex (>= 1.9.0)
- EasyAdminBlazor.Core (>= 2.4.0-preview.5)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.12)
- Rougamo.Fody (>= 5.0.2)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux.NoDependencies (>= 3.119.4)
NuGet packages (9)
Showing the top 5 NuGet packages that depend on EasyAdminBlazor:
| Package | Downloads |
|---|---|
|
EasyAdminBlazor.HtmlEditor
EasyAdminBlazor的TinyMCE编辑器扩展 |
|
|
EasyAdminBlazor.Chat
EasyAdminBlazor的聊天扩展 |
|
|
EasyAdminBlazor.Captcha
EasyAdminBlazor的验证码扩展 |
|
|
EasyAdminBlazor.MultiTenant
EasyAdminBlazor的多租户扩展,提供数据库隔离的多租户支持。 |
|
|
EasyAdminBlazor.Scheduler
EasyAdminBlazor基于FreeScheduler的计划任务扩展 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.4.0-preview.5 | 45 | 10/8/2026 |
| 2.4.0-preview.4 | 83 | 10/3/2026 |
| 2.4.0-preview.3 | 93 | 10/3/2026 |
| 2.4.0-preview.2 | 76 | 10/3/2026 |
| 2.4.0-preview.1 | 73 | 10/3/2026 |
| 2.4.0-preview | 140 | 10/3/2026 |
| 2.3.2 | 152 | 10/2/2026 |
| 2.3.1 | 163 | 9/19/2026 |
| 2.3.0 | 200 | 9/17/2026 |
| 2.2.18 | 179 | 9/8/2026 |
| 2.2.17 | 165 | 8/30/2026 |
| 2.2.16 | 106 | 8/26/2026 |
| 2.2.15 | 190 | 8/16/2026 |
| 2.2.14 | 158 | 8/14/2026 |
| 2.2.13 | 147 | 6/23/2026 |
| 2.2.12 | 142 | 6/19/2026 |
| 2.2.11 | 159 | 6/13/2026 |
| 2.2.10 | 136 | 6/7/2026 |
| 2.2.9 | 143 | 5/30/2026 |