在ASP.NETCore中启用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 策略应用到您的应用程序。主要有两种方法:全局应用或针对特定端点应用。
  • 如果要允许所有来源,可以按如下方式修改 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。
  • 在 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的实现示例
  • 目录
    • 如何在 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 服务添加到您的应用程序中。

            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();

            您需要将 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 是否按预期工作。

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

            站内搜索