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

如何在ASP.NET Core应用中配置Access-Control-Allow-Credentials?

解决ASP.NET Core中CORS携带凭据被拦截的问题

你的CORS配置缺少了允许携带凭据的关键设置,导致带Cookie或授权头的请求触发浏览器CORS策略限制。以下是修复方案:

1. 修改后端CORS策略配置

在现有策略中添加.AllowCredentials()方法,该方法会让服务器返回Access-Control-Allow-Credentials: true响应头,允许浏览器接受携带凭据的跨域请求。同时根据需求补充允许的请求头和方法:

var MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCors(options =>
{
    options.AddPolicy(name: MyAllowSpecificOrigins,
                      builder =>
                      {
                          builder.WithOrigins("http://my-account-name.github.io",
                                              "http://my-account-name.github.io/My-repository",
                                              "https://my-account-name.github.io",
                                              "https://my-account-name.github.io/My-repository")
                                 .AllowCredentials() // 启用凭据支持
                                 .AllowAnyHeader() // 允许所有请求头(可根据实际需求限制)
                                 .AllowAnyMethod(); // 允许所有HTTP方法(可根据实际需求限制)
                      });
});

// 其他服务注册代码...

var app = builder.Build();

// 注意中间件顺序:UseCors必须放在UseRouting之后、UseAuthorization之前
app.UseRouting();
app.UseCors(MyAllowSpecificOrigins);
app.UseAuthorization();

// 端点配置及其他中间件...

app.Run();

2. 前端请求需指定携带凭据

使用fetch发起请求时,必须添加credentials: 'include'选项,否则浏览器不会自动发送Cookie或凭据信息:

fetch('你的API接口地址', {
  method: 'GET', // 或POST/PUT等你需要的方法
  credentials: 'include' // 明确携带凭据
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error('请求出错:', err));

额外注意事项

  • .AllowCredentials()不能与.AllowAnyOrigin()同时使用,必须指定具体的允许域名,你的配置已经符合要求
  • 确保Cookie的SameSite属性配置正确:跨域场景下需设置为SameSite=None,同时Cookie必须开启Secure(仅HTTPS传输)
  • 中间件顺序不能错,UseCors的位置会直接影响策略是否生效

内容的提问来源于stack exchange,提问作者Ivan Silkin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:40:18