builder.Services.AddCors()

在 ASP.NET Core 中,使用 builder.Services.AddCors() 方法可以配置跨源资源共享(CORS)策略。CORS 是一种安全机制,用于允许一个域上的网页请求另一个域上的资源。默认情况下,浏览器会阻止跨源请求,因此需要通过配置 CORS 来允许这些请求。

配置 CORS 的基本步骤

以下是如何在 ASP.NET Core 应用程序中配置 CORS 的示例:

csharp
var builder = WebApplication.CreateBuilder(args);

// 添加 CORS 服务
builder.Services.AddCors(options =>
{
    options.AddPolicy("MyPolicy", policy =>
    {
        policy.WithOrigins("http://example.com", "http://example.org")
              .AllowAnyMethod()
              .AllowAnyHeader()
              .AllowCredentials();
    });
});

// 其他服务配置
builder.Services.AddControllers();

var app = builder.Build();

// 启用 CORS 中间件
app.UseCors("MyPolicy");

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

app.Run();

配置选项解释

  • AddPolicy:定义一个 CORS 策略。你可以为每个策略指定一个名称(如 "MyPolicy").
  • WithOrigins:指定允许的源。可以是具体的 URL 或使用通配符 * 允许所有源。在生产环境中,建议明确指定允许的源以提高安全性.
  • AllowAnyMethod:允许所有 HTTP 方法(如 GET、POST、PUT、DELETE 等).
  • AllowAnyHeader:允许所有请求头.
  • AllowCredentials:允许发送凭据(如 cookies 和 HTTP 认证信息).

注意事项

  • 安全性:在生产环境中,尽量避免使用通配符 * 来允许所有源,以防止潜在的安全风险。明确指定允许的源可以提高安全性.
  • 中间件顺序:UseCors 必须在 UseRouting 和 UseAuthorization 之前调用,以确保 CORS 策略在路由和授权之前生效.
  • 策略选择:你可以根据需要定义多个 CORS 策略,并在不同的控制器或操作上应用不同的策略,通过在控制器或操作上使用 [EnableCors("MyPolicy")] 属性来指定具体策略.

通过合理配置 CORS,你可以确保你的应用程序能够安全地处理跨源请求,同时避免不必要的安全问题.

posted @ 2025-01-06 17:26  yinghualeihenmei  阅读(143)  评论(0)    收藏  举报