文章目录
- 要为所有控制器启用该策略,请UseCors在请求管道配置中使用中间件: app.UseCors(“AllowSpecificOrigins”); // Apply CORS policy globally app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();
- 要为特定端点启用 CORS,请使用以下[EnableCors]属性: [ApiController] [Route(“api/[controller]”)] public class MyController : ControllerBase { [HttpGet] [EnableCors(“AllowSpecificOrigins”)] public IActionResult Get() { return Ok(“CORS is enabled for this endpoint.”); } }
目录
- 如何在 ASP.NET Core 中启用 CORS
- 为什么需要 CORS?
- 步骤 1:添加 CORS 服务
- 步骤 2:应用 CORS 策略
- 全球
- 每个端点
- 步骤 3:允许所有来源(可选)
- 步骤 4:测试 CORS 设置
- 常见问题及故障排除
- 结论
跨域资源共享 (CORS) 是一种允许 Web 应用程序访问来自不同域的资源的机制。默认情况下,出于安全考虑,浏览器会阻止跨域 HTTP 请求。但是,您可以在 ASP.NET Core 应用程序中启用 CORS,以便在需要时允许此类请求。本文将指导您使用现代最小托管模型在 ASP.NET Core 应用程序中逐步启用 CORS。
假设您有一个托管在 [此处应填写服务器地址] 的前端应用程序,https://frontend.example.com它试图访问托管在 [此处应填写服务器地址] 的 API 。https://api.example.com如果未启用 CORS,浏览器将阻止此请求,从而导致CORS 策略错误。启用 CORS 可以让您指定哪些域可以安全地访问您的 API。
第一步是将 CORS 服务添加到您的应用程序中。
- 打开
Program.cs文件。 AddCors在服务配置部分注册 CORS 服务:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigins", builder =>
{
builder.WithOrigins("https://frontend.example.com") // Replace with your allowed origins
.AllowAnyHeader()
.AllowAnyMethod();
});
});
builder.Services.AddControllers();
var app = builder.Build();

您需要将 CORS 策略应用到您的应用程序。主要有两种方法:全局应用或针对特定端点应用。
要为所有控制器启用该策略,请UseCors在请求管道配置中使用中间件:
app.UseCors("AllowSpecificOrigins"); // Apply CORS policy globally
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
要为特定端点启用 CORS,请使用以下[EnableCors]属性:
[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
[EnableCors("AllowSpecificOrigins")]
public IActionResult Get()
{
return Ok("CORS is enabled for this endpoint.");
}
}

如果要允许所有来源,可以按如下方式修改 CORS 策略:
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
然后,"AllowAll"在全局或针对特定端点应用 CORS 时,使用此策略名称。注意:允许所有来源可能会使您的 API 面临安全风险,因此请谨慎使用。
配置好 CORS 后,可以使用 Postman 等工具、浏览器或前端应用程序从不同的源发送请求进行测试。检查响应头中的条目,Access-Control-Allow-Origin以确认 CORS 是否按预期工作。

- 策略未应用:请确保策略名称与
UseCors中定义的策略名称匹配AddCors。
- 选项请求失败:如果您的 API 包含复杂请求,请确保该
OPTIONS方法已被允许。
- 配置错误的源:请仔细检查方法中的域名
WithOrigins。
UseCors中定义的策略名称匹配AddCors。OPTIONS方法已被允许。WithOrigins。
在 ASP.NET Core 中使用现代托管模型启用 CORS 非常简单,并且可以确保安全的跨域资源共享。通过有效地理解和配置 CORS 策略,您可以在保持安全性的同时增强应用程序的互操作性。
以上就是在ASP.NET Core中启用CORS跨域资源共享的方法的详细内容,更多关于ASP.NET Core启用CORS的资料请关注风君子博客其它相关文章!
您可能感兴趣的文章:
- 谈谈如何在ASP.NET Core中实现CORS跨域
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程
- 聊聊 ASP.NET Core 中间件和过滤器的区别解析
- ASP.NET Core + Layui实现联动选择功能
- ASP.NET Core上传文件到minio的实现示例