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

.NET Core 8无Startup.cs文件,旧教程含该文件及CORS配置该如何处理?

.NET Core 8 无 Startup.cs 时的 CORS 配置方案

.NET Core 6 及后续版本(包括 8)已移除独立的 Startup.cs 文件,原 Startup 中的配置逻辑全部合并到 Program.cs 的顶级语句中。以下是对应旧教程中 CORS 禁用/限制配置的实现方法:

一、完全禁用跨域请求

如果不需要任何跨域支持,无需额外配置,直接删除所有与 CORS 相关的代码即可:

  • 移除 Program.cs 中 builder.Services.AddCors() 的代码块
  • 移除 app.UseCors() 的调用

ASP.NET Core 默认会拒绝跨域请求,浏览器发起跨域请求时会触发 CORS 错误,等同于旧教程中“禁用 CORS”的效果。

二、配置严格跨域规则(限制仅允许特定源)

如果需要仅允许指定域名的跨域请求(类似旧教程中限制跨域的配置),在 Program.cs 中按以下步骤编写:

1. 注册 CORS 服务

var builder = WebApplication.CreateBuilder(args);

// 注册CORS服务,设置默认策略仅允许指定源
builder.Services.AddCors(options =>
{
    options.AddDefaultPolicy(policy =>
    {
        // 替换为你允许的前端/客户端域名,可添加多个用逗号分隔
        policy.WithOrigins("http://localhost:3000", "https://your-production-domain.com")
              .AllowAnyHeader()
              .AllowAnyMethod();
    });
});

// 注册其他服务(如控制器)
builder.Services.AddControllers();

2. 启用 CORS 中间件

var app = builder.Build();

// 启用CORS中间件(必须放在路由、授权中间件之前)
app.UseCors();

// 其他中间件配置
app.UseAuthorization();

app.MapControllers();

app.Run();

三、与旧 Startup.cs 代码的对应关系

旧版本 Startup.cs 中的典型配置:

// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("RestrictCors", policy =>
        {
            policy.WithOrigins("http://your-app-domain.com");
        });
    });
    services.AddControllers();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseCors("RestrictCors");
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints => endpoints.MapControllers());
}

在 .NET 8 中,只需将 ConfigureServices 内的 AddCors 移至 builder.Services 下,将 Configure 内的 UseCors 移至 app 构建后的中间件链中,逻辑完全一致。

内容的提问来源于stack exchange,提问作者Sinem Çalışkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:57:32