ASP.NET

关注公众号 jb51net

关闭
首页 > 网络编程 > ASP.NET > ASP.NET Core启用CORS

在ASP.NET Core中启用CORS跨域资源共享的方法

作者:hefeng_aspnet

跨域资源共享 (CORS) 是一种允许 Web 应用程序访问来自不同域的资源的机制,默认情况下,出于安全考虑,浏览器会阻止跨域 HTTP 请求,但是,您可以在 ASP.NET Core 应用程序中启用 CORS,以便在需要时允许此类请求,本文就给大家介绍了ASP.NET Core启用CORS的方法

如何在 ASP.NET Core 中启用 CORS

跨域资源共享 (CORS) 是一种允许 Web 应用程序访问来自不同域的资源的机制。默认情况下,出于安全考虑,浏览器会阻止跨域 HTTP 请求。但是,您可以在 ASP.NET Core 应用程序中启用 CORS,以便在需要时允许此类请求。本文将指导您使用现代最小托管模型在 ASP.NET Core 应用程序中逐步启用 CORS。

为什么需要 CORS?

假设您有一个托管在 [此处应填写服务器地址] 的前端应用程序,https://frontend.example.com它试图访问托管在 [此处应填写服务器地址] 的 API 。https://api.example.com如果未启用 CORS,浏览器将阻止此请求,从而导致CORS 策略错误。启用 CORS 可以让您指定哪些域可以安全地访问您的 API。

步骤 1:添加 CORS 服务

第一步是将 CORS 服务添加到您的应用程序中。

  1. 打开Program.cs文件。
  2. 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();

步骤 2:应用 CORS 策略

您需要将 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.");
    }
}

步骤 3:允许所有来源(可选)

如果要允许所有来源,可以按如下方式修改 CORS 策略:

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowAll", builder =>
    {
        builder.AllowAnyOrigin()
               .AllowAnyHeader()
               .AllowAnyMethod();
    });
});

然后,"AllowAll"在全局或针对特定端点应用 CORS 时,使用此策略名称。注意:允许所有来源可能会使您的 API 面临安全风险,因此请谨慎使用。

步骤 4:测试 CORS 设置

配置好 CORS 后,可以使用 Postman 等工具、浏览器或前端应用程序从不同的源发送请求进行测试。检查响应头中的条目,Access-Control-Allow-Origin以确认 CORS 是否按预期工作。

常见问题及故障排除

  1. 策略未应用:请确保策略名称与UseCors中定义的策略名称匹配AddCors
  2. 选项请求失败:如果您的 API 包含复杂请求,请确保该OPTIONS方法已被允许。
  3. 配置错误的源:请仔细检查方法中的域名WithOrigins

结论

在 ASP.NET Core 中使用现代托管模型启用 CORS 非常简单,并且可以确保安全的跨域资源共享。通过有效地理解和配置 CORS 策略,您可以在保持安全性的同时增强应用程序的互操作性。

以上就是在ASP.NET Core中启用CORS跨域资源共享的方法的详细内容,更多关于ASP.NET Core启用CORS的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文