You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Ardalis清洁架构模板,如何组织ASP.NET Core API与React+TS Vite项目?

针对你的项目结构问题的解决方案

1. ASP.NET Core认证Web API的放置位置

遵循Ardalis清洁架构的分层原则,认证Web API逻辑应直接整合到现有CodeSave.Web项目中:

  • 清洁架构中,Web层属于最外层的「交付机制」,负责处理HTTP请求、认证授权、路由等与外部交互的逻辑。你可以在CodeSave.Web内新增Controllers/AuthController,实现登录、注册、令牌刷新等认证端点,这完全符合分层职责,无需额外拆分项目。
  • 如果你的认证逻辑涉及复杂的身份管理(比如自定义用户存储、角色权限体系),可以在src目录下新增CodeSave.Identity项目,将身份相关的基础设施实现(如EF Core用户上下文、自定义身份验证服务)放在这里,再让CodeSave.Web引用该项目。但认证API端点仍需保留在CodeSave.Web中,因为这属于交付层的核心职责。

2. 前端项目的放置位置

需要创建独立的前端目录,建议在根目录下新建client或frontend文件夹,与src、tests同级,将React+Vite项目放在该目录下(例如client/CodeSave.Frontend)。

调整后的目录结构示例:

├── Directory.Build.props
├── Directory.Packages.props
├── docs
├── global.json
├── icon.png
├── CodeSave.sln
├── LICENSE
├── nuget.config
├── README.md
├── src
│   ├── CodeSave.Core
│   ├── CodeSave.Infrastructure
│   ├── CodeSave.SharedKernel
│   └── CodeSave.Web
├── tests
│   ├── CodeSave.FunctionalTests
│   ├── CodeSave.IntegrationTests
│   └── CodeSave.UnitTests
└── client
    └── CodeSave.Frontend
        ├── src
        ├── vite.config.ts
        ├── package.json
        └── ...(前端其他文件)

这种结构彻底实现了前后端代码的物理分离,符合清洁架构「关注点分离」的核心原则,同时方便各自独立构建、部署。

开发环境下的CORS配置

在ASP.NET Core的Program.cs中添加针对性的CORS策略,允许前端开发服务器的请求:

var builder = WebApplication.CreateBuilder(args);

// 配置CORS服务
builder.Services.AddCors(options =>
{
    options.AddPolicy("DevelopmentCors", policy =>
    {
        policy.WithOrigins("http://localhost:5173") // Vite默认开发地址
              .AllowAnyHeader()
              .AllowAnyMethod()
              .AllowCredentials(); // 允许携带认证令牌、Cookie等凭证
    });
});

// 其他服务注册(如AddControllers、AddDbContext等)
builder.Services.AddControllers();

var app = builder.Build();

// 启用CORS,注意顺序要放在UseRouting之后、UseAuthorization之前
app.UseCors("DevelopmentCors");

app.UseAuthorization();

app.MapControllers();

app.Run();

注意:生产环境中需替换为具体的前端域名,禁止使用AllowAnyOrigin,避免安全风险。

内容的提问来源于stack exchange,提问作者Hardik Dhuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:43:32