- 描述整体基于ASP.NET Core的分层架构与领域驱动设计 - 详细说明表现层、视图模型层、配置层和基础设施层职责 - 介绍用户认证、OAuth2授权码与令牌颁发的数据流过程 - 抽象说明用户与租户、声明和授权实体设计 - 说明应用启动入口和关键HTTP端点 - 列出错误处理策略和跨领域关注点(日志、追踪、安全) docs(concerns): 新增代码库问题与关注点分析文档 - 汇总并详述安全漏洞如配置文件泄露、Cookie策略不当 - 记录技术债务包括缺乏单元测试、依赖注入不统一等 - 罗列性能问题和具体代码缺陷 - 给出优先级明确的修复建议和改进措施 - 涵盖架构设计问题和依赖兼容性风险 - 说明测试覆盖缺口及高风险未测试区域 docs(conventions): 新增编码约定与规范文档 - 明确文件、类、方法、变量等命名规则 - 规范代码风格包括命名空间、主构造函数使用 - 制定日志记录、审计日志和依赖注入的标准 - 规定控制器路由、异步模式和错误处理方式 - 说明DTO命名及特性使用规范 - 描述配置管理、注释规范及常用代码注释样例 docs(integrations): 添加外部系统集成文档 - 介绍数据库连接和PostgreSQL客户端库版本 - 描述身份认证与授权服务及默认用户信息 - 说明可观测性方案及OpenTelemetry组件 - 涵盖容器化部署相关Docker与Kubernetes配置 - 说明CI/CD流水线触发条件与构建流程 - 列出环境变量需求和主要API端点 - 强调生产环境密钥管理与安全存储机制
3.4 KiB
3.4 KiB
技术栈
分析日期: 2026-02-28
语言
主要:
- C# 12 - 项目使用最新的 C# 语言特性
- .NET 10.0 - 目标框架版本
运行时:
- ASP.NET Core 10.0 - 用于构建 Web 应用程序和 API
运行时环境
框架:
- .NET 10.0 - 当前稳定版本
- ASP.NET Core - Web 框架
包管理:
- NuGet - .NET 包管理器
- Fengling.Platform.Infrastructure - 1.0.0 版本,内部平台基础设施包
- NetCorePal.Extensions - 3.2.1 版本,一系列扩展库
核心框架
身份认证与授权:
- OpenIddict 7.2.0 - OAuth2/OpenID Connect 实现
OpenIddict.AspNetCore- OpenIddict 的 ASP.NET Core 集成OpenIddict.EntityFrameworkCore- OpenIddict 的 EF Core 存储OpenIddict.Quartz- OpenIddict 的 Quartz.NET 集成(用于后台任务)
数据访问:
- Entity Framework Core 10.0.3 - ORM 框架
Microsoft.EntityFrameworkCore- 核心 EF Core 包Microsoft.EntityFrameworkCore.Design- EF Core 设计时工具Npgsql.EntityFrameworkCore.PostgreSQL- PostgreSQL 提供程序(已注释)Microsoft.EntityFrameworkCore.InMemory- 内存数据库(用于测试)
用户与角色管理:
- ASP.NET Core Identity 10.0.3 - 用户身份管理系统
Web API:
- Swashbuckle.AspNetCore 10.1.4 - Swagger/OpenAPI 文档生成
健康检查:
- AspNetCore.HealthChecks.Npgsql 9.0.0 - PostgreSQL 健康检查
- Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore 10.0.3 - EF Core 健康检查
日志与观测
日志:
- Serilog - 结构化日志框架
Serilog.AspNetCore10.0.0 - Serilog 的 ASP.NET Core 集成Serilog.Sinks.Console6.1.1 - 控制台输出接收器
分布式追踪:
- OpenTelemetry 1.15.0 - 可观测性标准
OpenTelemetry- 核心包OpenTelemetry.Extensions.Hosting- Host 集成OpenTelemetry.Instrumentation.AspNetCore- ASP.NET Core instrumentationOpenTelemetry.Instrumentation.Http- HTTP 客户端 instrumentationOpenTelemetry.Exporter.OpenTelemetryProtocol- OTLP 导出器
业务逻辑
CQRS 与中介者:
- MediatR 12.5.0 - 中介者模式实现
领域驱动设计支持:
- NetCorePal.Extensions.Domain.Abstractions - 领域抽象
- NetCorePal.Extensions.Primitives - 基础类型扩展
- NetCorePal.Extensions.Repository.EntityFrameworkCore - 仓储模式实现
- NetCorePal.Extensions.Repository.EntityFrameworkCore.Snowflake - 雪花算法 ID 生成
配置
环境配置:
appsettings.json- 基础配置appsettings.Development.json- 开发环境配置appsettings.Testing.json- 测试环境配置
关键配置项:
{
"ConnectionStrings": {
"DefaultConnection": "Host=81.68.223.70;Port=15432;Database=fengling_auth;..."
},
"Jwt": {
"Issuer": "http://localhost:5132",
"Audience": "fengling-api",
"Secret": "..."
},
"OpenIddict": {
"Issuer": "http://localhost:5132",
"Audience": "fengling-api"
}
}
Docker 配置:
- 基础镜像:
mcr.microsoft.com/dotnet/aspnet:10.0 - 构建镜像:
mcr.microsoft.com/dotnet/sdk:10.0 - 暴露端口:80
项目结构
解决方案:
Fengling.AuthService.slnx- 现代解决方案格式
项目文件:
src/Fengling.AuthService.csproj- 主项目文件Directory.Packages.props- 集中化包版本管理
技术栈分析:2026-02-28