EasyAdminBlazor 2.4.0

dotnet add package EasyAdminBlazor --version 2.4.0
                    
NuGet\Install-Package EasyAdminBlazor -Version 2.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EasyAdminBlazor" Version="2.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EasyAdminBlazor" Version="2.4.0" />
                    
Directory.Packages.props
<PackageReference Include="EasyAdminBlazor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EasyAdminBlazor --version 2.4.0
                    
#r "nuget: EasyAdminBlazor, 2.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EasyAdminBlazor@2.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EasyAdminBlazor&version=2.4.0
                    
Install as a Cake Addin
#tool nuget:?package=EasyAdminBlazor&version=2.4.0
                    
Install as a Cake Tool

EasyAdminBlazor

EasyAdminBlazor 是一个基于 .NET 10 + Blazor 技术栈的企业级后台管理框架,由 BootstrapBlazor 组件库驱动 UI,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/i4ByMAX4(i4ByMAX4 是默认的 AdminRouteSecret 安全码,端口以控制台启动日志里的监听地址为准)。默认账号 admin,密码 123yyq。


📚 文档与源码

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (12)

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 43 10/13/2026
2.4.0-preview.6 88 10/10/2026
2.4.0-preview.5 83 10/8/2026
2.4.0-preview.4 89 10/3/2026
2.4.0-preview.3 99 10/3/2026
2.4.0-preview.2 79 10/3/2026
2.4.0-preview.1 77 10/3/2026
2.4.0-preview 143 10/3/2026
2.3.2 157 10/2/2026
2.3.1 170 9/19/2026
2.3.0 203 9/17/2026
2.2.18 182 9/8/2026
2.2.17 169 8/30/2026
2.2.16 110 8/26/2026
2.2.15 193 8/16/2026
2.2.14 161 8/14/2026
2.2.13 150 6/23/2026
2.2.12 145 6/19/2026
2.2.11 162 6/13/2026
2.2.10 139 6/7/2026
Loading failed