ASP.NET Core 8 Razor Pages经AWS API Gateway访问时登录POST报400及重定向异常
ASP.NET Core 8 Razor Pages在AWS API Gateway后出现认证与重定向问题
部署在Docker容器中的ASP.NET Core 8 Razor Pages应用,通过EC2直接访问运行正常,但经AWS API Gateway访问时出现认证及重定向相关问题,怀疑问题与转发标头、Cookie、防伪令牌或API Gateway代理行为有关。
当前配置
转发标头配置
builder.Services.Configure<ForwardedHeadersOptions>(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost; options.KnownNetworks.Clear(); options.KnownProxies.Clear(); }); app.UseForwardedHeaders();
Cookie/会话配置
builder.Services.Configure<CookiePolicyOptions>(options => { options.CheckConsentNeeded = context => false; options.MinimumSameSitePolicy = SameSiteMode.Lax; options.HttpOnly = HttpOnlyPolicy.Always; options.Secure = CookieSecurePolicy.SameAsRequest; }); builder.Services.AddSession(options => { options.IdleTimeout = TimeSpan.FromHours(24); options.Cookie.HttpOnly = true; options.Cookie.IsEssential = true; options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; });
相关日志
[WRN] Failed to determine the https port for redirect. [INF] AuthenticationScheme: Cookies was challenged. [INF] [DEBUG] Scheme: http, URL: http:some-aws-url:8085/authentication/login2026-05-08
具体现象
- 通过
HttpContext获取到的请求Scheme为http、URL为http://some-aws-url:8085,但实际访问使用HTTPS,该URL并非公网DNS,端口也与容器运行端口不符。 - 自动重定向(如从/index跳转到/authentication/login)失效,仅能手动输入URL访问登录页。
- 登录POST请求无法到达Razor Page处理器,浏览器会提前收到HTTP 400错误。
由于该AWS环境并非我方所有,测试前难以调整配置,恳请分析问题原因。
内容的提问来源于stack exchange,提问作者Adler Targino
相关产品推荐
相关产品推荐

