EasyAdminBlazor 2.6.1
dotnet add package EasyAdminBlazor --version 2.6.1
NuGet\Install-Package EasyAdminBlazor -Version 2.6.1
<PackageReference Include="EasyAdminBlazor" Version="2.6.1" />
<PackageVersion Include="EasyAdminBlazor" Version="2.6.1" />
<PackageReference Include="EasyAdminBlazor" />
paket add EasyAdminBlazor --version 2.6.1
#r "nuget: EasyAdminBlazor, 2.6.1"
#:package EasyAdminBlazor@2.6.1
#addin nuget:?package=EasyAdminBlazor&version=2.6.1
#tool nuget:?package=EasyAdminBlazor&version=2.6.1
EasyAdminBlazor
EasyAdminBlazor 是一个基于 .NET 10 + Blazor 技术栈的后台管理框架,UI 层由 BootstrapBlazor 驱动,数据访问由 FreeSql 提供。核心功能与扩展功能解耦,扩展按需引用。
官方网站:https://easyadmin.wang-zhan.com.cn
核心特性
模块化架构
核心功能与扩展功能解耦,通过 NuGet 扩展按需安装,避免功能臃肿:
| 模块 | 说明 |
|---|---|
| 用户管理 | 用户增删改查、状态管理、多端登录检测、批量设置角色/部门/重置密码 |
| 角色管理 | 基于角色的权限分配、管理员标识、删除引用保护 |
| 菜单管理 | 无限级菜单树、按钮级权限、可视化配置、菜单收藏、隐藏控制 |
| 组织架构 | 树形部门管理、多类型(集团/公司/部门/供应商)、数据权限隔离、负责人绑定、组织结构图 |
| 配置管理 | 系统参数动态配置,支持数据库存储,第三方服务参数集中管理 |
| 字典管理 | 通用字典表,支持下拉/多选,批量导入导出 |
| 日志管理 | 操作日志(字段级变更明细)、登录日志(IP/城市/浏览器/设备)、错误日志(TraceId) |
| 文件管理 | 本地文件上传/下载、图片压缩/WebP 转换、分组管理、私有文件受控下载 |
| 代码生成器 | 可视化生成 CRUD 页面(仅本地开发环境;扩展 EasyAdminBlazor.CodeGenerator) |
| 打印模板设计器 | 可视化设计打印模板、与 AdminTable 联动、一键打印(扩展 EasyAdminBlazor.Print) |
| 消息中心 | 站内信、系统通知 |
| 回收站 | 软删除恢复、批量还原、彻底删除(二次确认) |
应用在线升级(扩展 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 |
应用在线升级(逐版本增量、自动回滚) |
EasyAdminBlazor.Print |
打印模板、报表设计器 |
EasyAdminBlazor.CodeGenerator |
可视化 CRUD 代码生成 |
自己的功能也能封成这样的扩展包,做法见 如何自建扩展。
安全特性
- 密码 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/{安全码}。安全码是首次启动时随机生成的 8 位字符,会打印在控制台启动日志里(同时保存在 .aspnet/admin-route-secret.txt,重启不变);端口同样以控制台启动日志里的监听地址为准。默认账号 admin,密码 123yyq。
源码授权客户:直接引用源码
购买源码授权的客户如果希望项目直接引用你拿到的那份框架源码(而不是公共 NuGet 包),把模板生成项目里的包引用换成源码引用即可:
<ItemGroup>
<ProjectReference Include="..\EasyAdminBlazor\EasyAdminBlazor\EasyAdminBlazor.csproj" />
<ProjectReference Include="..\EasyAdminBlazor\Extensions\EasyAdminBlazor.Cms\EasyAdminBlazor.Cms.csproj" />
</ItemGroup>
几个要点:
- 核心库不用单独引:
EasyAdminBlazor.Core由主框架工程传递引用 - 扩展各自独立:需要哪个扩展就引哪个工程(
Extensions/下每个目录一个工程) - 不再依赖框架的 NuGet 版本:框架升级只需更新这份源码;只有第三方依赖(BootstrapBlazor、FreeSql 等)仍走 NuGet
- 发布应用不受影响:源码引用只在编译期生效,你的应用照常
dotnet publish成可部署产物 - 可移植性:把框架源码目录放在项目同级(如
../EasyAdminBlazor),别用绝对路径或跨盘符的相对路径,否则别人 clone 你的项目就跑不起来
文档与源码
商业授权与源码
框架本体免费使用(NuGet 包,可直接用于商业项目);源码为付费授权,购买后可自由修改、二次开发,并可闭源交付给你的客户。
| 能力 | 免费(NuGet 包) | 源码授权 |
|---|---|---|
| 后台管理、RBAC、多租户、计划任务等全部功能 | ✅ | ✅ |
| 商用、私有化部署、交付客户 | ✅ | ✅ |
| 查看与修改框架源码 | ❌ | ✅ |
| 深度定制框架自身(改基类、加内置模块) | ❌ | ✅ |
| 终身更新 | 按社区节奏 | ✅ |
| 一对一技术支持 | ❌ | 可选(1 年) |
- 购买与价格:https://easyadmin.wang-zhan.com.cn/pay
- 授权协议:免费使用许可(NuGet 包)、源码商业授权协议
- 咨询:84383822@qq.com
已购买源码授权的项目,可在
AddEasyAdminBlazor中设置ShowSourceLink = false,去掉后台页头的「获取源码」入口。
| 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 (>= 11.0.1)
- BootstrapBlazor.FontAwesome (>= 10.0.3)
- BootstrapBlazor.TableExport (>= 10.0.3)
- DiffPlex (>= 1.9.0)
- EasyAdminBlazor.Core (>= 2.6.1)
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.13)
- Rougamo.Fody (>= 5.0.2)
- SkiaSharp (>= 4.153.1)
- SkiaSharp.NativeAssets.Linux.NoDependencies (>= 4.153.1)
NuGet packages (13)
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.