# user-management-system **Repository Path**: XiaoYangProject/user-management-system ## Basic Information - **Project Name**: user-management-system - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-10 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用户管理系统 一个基于 Vue 3 + Ant Design Vue 和 .NET 8 Web API 的完整用户管理系统。 ## 技术栈 ### 前端 - Vue 3 (Composition API) - TypeScript - Ant Design Vue - Pinia (状态管理) - Vue Router - Axios ### 后端 - .NET 8 - Entity Framework Core - SQL Server - JWT 认证 - BCrypt 密码加密 ## 功能特性 - ✅ 用户登录/登出 (JWT Token) - ✅ 密码连续错误 5 次锁定账号 30 分钟 - ✅ Token 自动刷新机制 - ✅ 用户 CRUD 操作 - ✅ 角色管理 - ✅ 权限管理 (菜单级/按钮级/数据级) - ✅ 登录日志记录 - ✅ 操作日志记录 - ✅ 个人中心 - ✅ 修改密码 - ✅ NLog 日志系统 - ✅ 数据库自动创建和初始化 ## 快速开始 ### 环境要求 - .NET 8 SDK - Node.js 18+ - SQL Server 2016+ ### 1. 配置数据库连接 编辑 `backend/appsettings.json`: ```json { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=UserManagementDB;User Id=sa;Password=sa;TrustServerCertificate=true;" }, "Jwt": { "SecretKey": "YourSuperSecretKeyThatIsAtLeast32CharactersLong!", "Issuer": "UserManagementSystem", "Audience": "UserManagementSystem.Client" } } ``` **注意**: 如果你的 SQL Server 密码不同,请修改 `Password` 字段。 ### 2. 启动后端 ```bash cd backend dotnet restore dotnet run ``` 后端服务将在启动时自动: - 创建数据库 `UserManagementDB` - 创建所有表结构 - 插入默认权限、角色和管理员账号 - 插入测试数据 后端服务将在 `http://localhost:5000` 启动,Swagger 文档地址:`http://localhost:5000/swagger` ### 3. 安装前端依赖 ```bash cd frontend npm install ``` ### 4. 启动前端 ```bash npm run dev ``` 前端服务将在 `http://localhost:5173` 启动 ## 默认账号 | 用户名 | 密码 | 角色 | |--------|------|------| | admin | Admin123 | 超级管理员 | ## 项目结构 ``` . ├── backend/ # .NET 8 后端 │ ├── Controllers/ # API 控制器 │ ├── Services/ # 业务逻辑层 │ ├── Repositories/ # 数据访问层 │ ├── Models/ # 数据模型 │ │ ├── Entities/ # 数据库实体 │ │ └── DTOs/ # 数据传输对象 │ ├── Middleware/ # 中间件 │ ├── Security/ # 安全相关 │ ├── Data/ # 数据库上下文 │ ├── nlog.config # NLog 配置文件 │ ├── logs/ # 日志输出目录 (自动生成) │ └── Program.cs # 入口文件 ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # 组件 │ │ ├── views/ # 页面视图 │ │ ├── stores/ # Pinia 状态 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ └── types/ # TypeScript 类型 │ └── package.json └── database/ # 数据库脚本 (可选使用) └── init.sql ``` ## API 文档 启动后端后访问:`http://localhost:5000/swagger` ## 开发说明 ### 添加新的 API 端点 1. 在 `backend/Controllers/` 创建新的控制器 2. 在 `backend/Services/` 实现业务逻辑 3. 在 `frontend/src/api/` 添加对应的前端 API 调用 ### 添加新的权限 1. 在 `database/init.sql` 的权限表中添加新权限 2. 在前端路由中添加权限配置 3. 在页面中使用权限控制 ## 常见问题 ### 前端跨域问题 前端已配置代理到后端,开发时会自动转发 `/api` 请求到 `http://localhost:5000` ### 数据库连接失败 检查 SQL Server 是否启动,并确认连接字符串中的密码与你的配置一致 ### Token 过期 系统会自动刷新 Token,如果 refresh token 也过期会跳转到登录页 ## License MIT