diff --git a/.cursor/rules/openauth.mdc b/.agents/skills/dev/SKILL.md similarity index 98% rename from .cursor/rules/openauth.mdc rename to .agents/skills/dev/SKILL.md index fc54196d..6a5a8e94 100644 --- a/.cursor/rules/openauth.mdc +++ b/.agents/skills/dev/SKILL.md @@ -1,33 +1,7 @@ --- -alwaysApply: false +name: dev +description: OpenAuth.Net开发规范 --- -# OpenAuth.Net Cursor Rules - -## 项目概述 -OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架,采用Martin Fowler企业级应用开发思想,集成了最新的技术栈。 - -## 技术栈 -- **后端**: .NET 9, ASP.NET Core WebAPI -- **ORM**: SqlSugar (主要) + Entity Framework Core (兼容) -- **依赖注入**: Autofac -- **数据库**: 支持SqlServer、MySQL、Oracle、PostgreSQL -- **定时任务**: Quartz.NET -- **缓存**: Redis, MemoryCache -- **前端**: Vue2 + Element-UI -- **测试**: NUnit -- **文档**: Swagger - -## 项目架构 -``` -📦OpenAuth.Net - ┣ 📂Infrastructure # 基础设施层 - 工具类、扩展方法、帮助类 - ┣ 📂OpenAuth.Repository # 数据访问层 - 实体定义、数据访问 - ┣ 📂OpenAuth.App # 应用服务层 - 业务逻辑 - ┣ 📂OpenAuth.WebApi # 表示层 - WebAPI控制器 - ┣ 📂OpenAuth.Identity # 身份认证服务 - IdentityServer4 - ┣ 📂Vue2 # 前端项目 - ┗ 📂数据库脚本 # 数据库初始化脚本 -``` ## 编码规范 @@ -54,7 +28,33 @@ OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架 - 复杂业务逻辑必须添加行内注释 - 使用/// 标记方法说明 - 参数使用/// 说明 -- 返回值使用/// 说明 +- 返回值使用/// 说明 + +## 项目概述 +OpenAuth.Net是一个基于.NET 9的企业级权限管理和快速开发框架,采用Martin Fowler企业级应用开发思想,集成了最新的技术栈。 + +## 技术栈 +- **后端**: .NET 9, ASP.NET Core WebAPI +- **ORM**: SqlSugar (主要) + Entity Framework Core (兼容) +- **依赖注入**: Autofac +- **数据库**: 支持SqlServer、MySQL、Oracle、PostgreSQL +- **定时任务**: Quartz.NET +- **缓存**: Redis, MemoryCache +- **前端**: Vue2 + Element-UI +- **测试**: NUnit +- **文档**: Swagger + +## 项目架构 +``` +📦OpenAuth.Net + ┣ 📂Infrastructure # 基础设施层 - 工具类、扩展方法、帮助类 + ┣ 📂OpenAuth.Repository # 数据访问层 - 实体定义、数据访问 + ┣ 📂OpenAuth.App # 应用服务层 - 业务逻辑 + ┣ 📂OpenAuth.WebApi # 表示层 - WebAPI控制器 + ┣ 📂OpenAuth.Identity # 身份认证服务 - IdentityServer4 + ┣ 📂Vue2 # 前端项目 + ┗ 📂数据库脚本 # 数据库初始化脚本 +``` ## 分层架构规则 diff --git a/.cursor/mcp.json b/.cursor/mcp.json deleted file mode 100644 index ecf4f224..00000000 --- a/.cursor/mcp.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "mcpServers": { - "PostgreSQL": { - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-postgres", - "postgresql://postgres:AwxBRx1_5kljfy@172.30.144.46/openauthpro" - ], - "env": {} - }, - "openauthpro": { - "command": "powershell", - "args": [ - "-Command", - "npx -y @f4ww4z/mcp-mysql-server" - ], - "env": { - "MYSQL_HOST": "localhost", - "MYSQL_PORT": "3306", - "MYSQL_USER": "root", - "MYSQL_PASSWORD": "000000", - "MYSQL_DATABASE": "openauthpro" - } - } - } -} \ No newline at end of file diff --git a/Infrastructure/Middleware/RequestResponseLoggingMiddleware.cs b/Infrastructure/Middleware/RequestResponseLoggingMiddleware.cs index cdaa9163..854c8c9d 100644 --- a/Infrastructure/Middleware/RequestResponseLoggingMiddleware.cs +++ b/Infrastructure/Middleware/RequestResponseLoggingMiddleware.cs @@ -65,7 +65,8 @@ namespace Infrastructure.Middleware // 启用倒带功能,就可以让 Request.Body 可以再次读取 request.EnableBuffering(); // 文件上传 记录文件信息 - if (path.Contains("/upload")) + var contentType = request.ContentType?? ""; + if (path.Contains("/upload") || contentType.Contains("multipart/form-data")) { var content = string.Join(",", request.Form.Files.Select(item => item.FileName)); logData.Add("request.body", $"收到上传文件:{content}"); @@ -73,7 +74,6 @@ namespace Infrastructure.Middleware else { var sr = new StreamReader(request.Body, Encoding.UTF8); - //string content = sr.ReadToEnd(); //.Net Core 3.0 默认不再支持 var content = sr.ReadToEndAsync().Result; logData.Add("request.body", content); request.Body.Position = 0;