项目概述
1. 项目简介
Chet.Admin 是一套企业级 RBAC(基于角色的访问控制)权限管理系统,采用前后端分离架构:
- 后端:基于 .NET 10 的 Clean Architecture 解决方案,提供 RESTful API
- 前端:基于 Vben Admin v5.7 框架的 Vue 3 管理后台,主应用采用 Ant Design Vue
系统开箱即用,提供完整的用户、角色、菜单、部门、权限等核心 RBAC 能力,以及按钮级权限控制、数据权限、操作日志、通知公告等增强功能。
2. 核心特性
- 全栈分离:前后端独立开发、独立部署,通过 RESTful API 通信
- 企业级架构:后端遵循 Clean Architecture + DDD,分层清晰、职责单一
- 完善权限体系:菜单级路由权限 + 按钮级操作权限 + 行级数据权限
- 安全可靠:JWT 双令牌认证、BCrypt 密码哈希、限流防护、验证码、登录锁定
- 现代化技术栈:.NET 10 + Vue 3 + TypeScript + Vite
- 开箱即用:内置种子数据,启动即可登录使用
- 可观测性:Serilog 结构化日志、操作审计日志、在线用户追踪
- 容器化部署:原生支持 Docker / Docker Compose
3. 技术栈
3.1 后端技术栈
| 类别 | 技术 | 说明 |
|---|---|---|
| 框架 | .NET 10 | 最新稳定版运行时 |
| 语言 | C# 12 | 现代化语言特性 |
| ORM | Entity Framework Core | SQLite(开发)/ PostgreSQL(生产) |
| 缓存 | Redis + MemoryCache | Redis 不可用时自动降级为 NoOp |
| 认证 | JWT (JSON Web Token) | 双令牌机制(Access + Refresh) |
| 密码 | BCrypt | 不可逆哈希算法 |
| 对象映射 | AutoMapper | DTO 与实体转换 |
| 日志 | Serilog | 结构化日志,支持文件输出 |
| API 文档 | Swagger / OpenAPI | 启动自动生成接口文档 |
| 参数校验 | FluentValidation | 强类型输入校验 |
| 容器化 | Docker | 原生 Dockerfile + docker-compose |
3.2 前端技术栈
| 类别 | 技术 | 说明 |
|---|---|---|
| 框架 | Vue 3 | Composition API |
| 构建工具 | Vite | 极速热更新 |
| UI 组件库 | Ant Design Vue | 企业级中后台组件 |
| 语言 | TypeScript | 类型安全 |
| 状态管理 | Pinia | Vue 官方推荐 |
| 路由 | Vue Router | 动态路由权限 |
| HTTP 请求 | Axios(封装) | 拦截器统一处理 |
| CSS 方案 | Tailwind CSS v4 | 原子化 CSS |
| 包管理 | pnpm | Monorepo 工作区 |
| 构建编排 | Turbo | 多包并行构建 |
| 表格组件 | VxeTable | 高性能虚拟表格 |
| 图表 | ECharts(vue-echarts) | 仪表盘数据可视化 |
4. 功能模块
4.1 模块说明
| 模块 | 核心能力 |
|---|---|
| 认证登录 | 注册、登录、刷新令牌、注销、验证码、登录失败锁定、密码过期策略 |
| 用户管理 | 用户 CRUD、密码强度校验、修改密码、分配角色、数据权限过滤 |
| 角色管理 | 角色 CRUD、菜单分配(含按钮权限)、数据权限范围(5 种) |
| 菜单管理 | 菜单 CRUD、树形展示、动态路由生成 |
| 部门管理 | 部门 CRUD、树形结构 |
| 字典管理 | 字典 CRUD、useDict 组合式函数联动业务表单 |
| 仪表盘 | 统计卡片、SVG 趋势图、最近操作记录 |
| 个人中心 | 资料修改、密码修改、头像上传 |
| 操作日志 | 中间件自动记录写操作、分页查询、清理 |
| 通知公告 | 全局公告、个人通知、未读计数、标记已读 |
| 文件上传 | 本地存储、上传 / 下载 / 删除、10MB 限制 |
| 在线用户 | 登录追踪、强制下线 |
5. 部署架构
系统支持多种部署方式:
- 单体部署:所有功能部署在单一应用中,适合中小规模
- 容器化部署:Docker / Docker Compose 一键部署
- 前后端独立部署:前端静态资源 + 后端 API 服务,通过反向代理(Nginx)转发
6. 默认运行端口
| 服务 | 地址 | 说明 |
|---|---|---|
| 后端 API | http://localhost:5021 | Swagger UI:http://localhost:5021/swagger |
| 前端(开发) | http://localhost:5666 | Vite 开发服务器,自动代理 /api 到后端 |
| Redis(可选) | localhost:6379 | 默认关闭,可按需启用 |
7. 开源协议
项目采用 MIT 协议。前端基于 Vue Vben Admin(MIT 协议)二次开发。
8. 延伸阅读
本站「文章」栏目提供更深入的系列教程,可作为本指南的扩展阅读: