ASP.NET Core 权限管理系统(RBAC)设计与实现|vue3-element-admin .NET 后端

项目简介

youlai-aspnetvue3-element-adminASP.NET Core 8(.NET 8)后端实现,接口路径与返回结构完全对齐,可直接为 vue3-element-admin 前端项目提供后端服务,形成完整的 youlai 全家桶企业级解决方案。

项目特色

  • 🚀 最新技术栈:.NET 8 + ASP.NET Core 8,性能、长期支持与生态同步升级
  • 🔐 安全认证:JWT 无状态认证 + Redis 会话双模式,满足不同安全等级场景
  • 🔑 权限管理:RBAC 权限模型,菜单/按钮/接口三级权限统一治理
  • 🛠️ 模块能力:用户、角色、菜单、部门、字典等核心模块开箱即用

项目源码

项目 Gitee GitHub GitCode
.NET 后端 youlai-aspnet youlai-aspnet youlai-aspnet
Vue3 管理端 vue3-element-admin vue3-element-admin vue3-element-admin
uni-app 移动端 vue-uniapp-template vue-uniapp-template vue-uniapp-template

技术栈

分类 技术选型 说明
运行时 .NET SDK 8 版本锁定:8.0.416
Web 框架 ASP.NET Core 8 高性能 Web API 框架
ORM Entity Framework Core (MySQL) 数据访问层
缓存 Redis 7.x 会话存储、数据缓存
认证 JWT Bearer 基于令牌的身份验证
接口文档 Swagger/OpenAPI 交互式 API 文档

架构设计

项目采用经典的四层架构(借鉴 DDD 思想),确保了代码的低耦合、高内聚,使得项目在功能扩展和长期维护上都表现出色。各层职责明确,依赖关系清晰:
Layers
Api 层
Application 层
Domain 层
Infrastructure 层

  • Youlai.Domain (领域层):项目的核心,定义了实体模型、领域对象和最核心的业务规则,不依赖任何其他层。
  • Youlai.Application (应用层) :负责编排和协调业务逻辑,定义服务接口和数据传输对象(DTOs),是领域层与外部世界的桥梁。它依赖 Domain 层。
  • Youlai.Infrastructure (基础设施层) :提供技术实现,如数据库访问(EF Core)、缓存(Redis)、消息队列等。它依赖 Domain 层,并被 Application 层调用。
  • Youlai.Api (接口层) :对外暴露 Web API 接口,负责请求的接收、参数校验、认证授权等。它依赖 Application 层。

项目目录结构

bash 复制代码
youlai-aspnet/
├─ src/                             # 源码目录
│  ├─ Youlai.Api/                   # Web API层(控制器、中间件、认证授权)
│  ├─ Youlai.Application/           # 应用层(服务接口定义、DTO、业务逻辑)
│  ├─ Youlai.Domain/                # 领域层(实体模型、领域对象、枚举)
│  └─ Youlai.Infrastructure/        # 基础设施层(EF Core实现、仓储、缓存)
│
├─ sql/                             # 数据库脚本
│  └─ mysql/
│     └─ youlai_admin.sql           # 数据库初始化脚本(包含表结构和基础数据)
│
├─ tests/                           # 测试项目
├─ youlai-aspnet.sln                # Visual Studio 解决方案文件
└─ global.json                      # .NET SDK版本锁定配置

快速环境准备与启动

1. 准备基础环境

要求 说明 安装指引
.NET SDK 8 8.0.416 或更高版本 官方下载
MySQL 5.7+ 或 8.x 业务数据存储,必需安装:Windows / Linux
Redis 7.x 稳定版 会话缓存,必需安装:Windows / Linux
MySQL 客户端 Navicat / DBeaver / SQLark 推荐使用图形化管理工具

⚠️ 重要提示:MySQL 与 Redis 为项目启动必需依赖,请确保服务已启动。

2. 安装开发工具

Visual Studio 2022+(推荐):

  • 社区版即可,安装工作负载:ASP.NET 和 Web 开发

VS Code (本文使用):

  1. 安装 .NET SDK 8
复制代码
dotnet --version
  1. 安装以下扩展插件(VS Code 扩展市场搜索安装):
插件名称 作用
C# Dev Kit .NET 开发核心套件,必备
C# C# 语言支持
NuGet Package Manager NuGet 包管理

3. 初始化数据库

推荐使用 NavicatDBeaverMySQL Workbench 等数据库管理工具执行初始化脚本:

  1. 打开数据库管理工具,连接到 MySQL 服务器
  2. 执行项目根目录下的脚本文件:sql/mysql/youlai_admin.sql
  3. 脚本会自动创建 youlai_admin 数据库及相关表结构
  4. 插入初始化数据(包含默认管理员账号:admin/123456)

4. 配置应用程序

开发环境配置文件:src/Youlai.Api/appsettings.Development.json

json 复制代码
{
  "Database": {
    "ConnectionString": "Server=localhost;Port=3306;Database=youlai_admin;User=root;Password=123456;"
  },
  "Redis": {
    "ConnectionString": "localhost:6379,password=,defaultDatabase=0"
  },
  "Security": {
    "Session": {
      "AccessTokenTimeToLive": 7200,
      "RefreshTokenTimeToLive": 604800,
      "Jwt": {
        "SecretKey": "设置一个至少32位的安全密钥"
      }
    }
  }
}

配置项说明:

  • Database:ConnectionString:MySQL 数据库连接字符串
  • Redis:ConnectionString:Redis 连接配置
  • Security:Session:Jwt:JWT 认证相关配置(生产环境请务必修改 SecretKey)

5. 启动后端服务

bash 复制代码
# 1. 克隆项目
git clone https://gitee.com/youlaiorg/youlai-aspnet.git
cd youlai-aspnet

# 2. 下载并还原项目依赖(NuGet 包)
dotnet restore

# 3. 启动项目
dotnet run --project src/Youlai.Api -c Release

启动成功后,访问 http://localhost:8000/swagger 验证项目是否成功。

6. 整合并启动前端

youlai-aspnet 专为 vue3-element-admin 设计,前后端完全兼容:

bash 复制代码
# 1. 获取前端项目
git clone https://gitee.com/youlaiorg/vue3-element-admin.git
cd vue3-element-admin

# 2. 安装依赖(推荐使用 pnpm)
npm install -g pnpm
pnpm install

# 3. 配置后端接口地址
# 编辑 .env.development 文件,修改:
VITE_APP_API_URL=http://localhost:8000

# 4. 启动前端
pnpm run dev

7. 效果图

访问地址 : http://localhost:3000 登录账号 : admin / 123456

登录页

控制台
系统管理

代码生成

项目部署

Windows 部署 (IIS + Kestrel)

适用于 Windows Server 或企业内网环境,是官方推荐的生产环境部署方案。

1. 安装 IIS

  • 打开 控制面板程序启用或关闭 Windows 功能
  • 勾选 Internet Information Services (使用默认组件即可)。

2. 安装 ASP.NET Core Hosting Bundle

  • 官网 下载并安装 Hosting Bundle
  • 安装完成后重启 IIS。

3. 发布项目

推荐使用独立发布模式,使应用不依赖服务器上安装的 .NET Runtime。

bash 复制代码
dotnet publish src/Youlai.Api -c Release -r win-x64 --self-contained true -o ./publish

4. 配置 IIS

  • 打开 IIS 管理器 ,右键 网站添加网站
  • 物理路径 :指向第 3 步生成的 publish 文件夹。
  • 端口 :设置一个未被占用的端口,如 8000
  • 应用程序池
    • .NET CLR 版本 :选择 无托管代码
    • 管道模式 :选择 Integrated

5. 访问

通过 http://服务器IP:端口 访问应用。

说明: 在此方案中,IIS 作为反向代理和进程管理器,实际的应用由内置的 Kestrel 服务器运行,无需单独配置 Kestrel。

技术交流

youlai-aspnet 旨在为 .NET 开发者提供一个与 vue3-element-admin 无缝对接、开箱即用的高性能后端解决方案。通过遵循清晰的架构设计和最新的技术栈,我们希望它能成为你快速构建企业级应用的坚实基础。

相关推荐
qq_12498707532 小时前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
shuair3 小时前
springboot整合redisson单机模式
java·spring boot·后端
qq_12498707533 小时前
基于springboot的竞赛团队组建与管理系统的设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·信息可视化·毕业设计·计算机毕业设计
Dr.Kun3 小时前
【鲲码园PsychoPy】Go/No-go范式
开发语言·后端·golang
云草桑3 小时前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
可问春风_ren3 小时前
Vue3 入门详解:从基础到实战
开发语言·前端·javascript·vue.js·前端框架·ecmascript·edge浏览器
源代码•宸3 小时前
Redis 攻略(Redis Object)
数据库·redis·后端·缓存·字符串·哈希表·type
林shir3 小时前
3-14-后端Web进阶(SpringBoot原理)
java·spring boot·后端
想睡好4 小时前
ref和reactive
前端·javascript·vue.js