我有一个.NET Core 3.1 WebApi应用程序,其中UI和API托管在同一根域的不同子域上,例如https://api.domain.com
和https://ui.domain.com
UI站点设置了一些我需要在API后端中读取的cookie(.domain.com),但是无论我如何尝试-cookie永远不会传入。我启用了CORS策略,该策略允许我的[ C0] ConfigureServices:
Startup.cs
并在应用程序配置中使用它:
services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => { builder.WithOrigins("https://*.domain.com") .SetIsOriginAllowedToAllowWildcardSubdomains .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); });
我还设置了Cookie政策:
app.UseCors("CorsPolicy");
但是从
app.UseCookiePolicy( new CookiePolicyOptions() { MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax });
调用https://api.domain.com
时,预期的cookie不存在。
如果UI和API都在同一个完全相同的子域上-则可以。我想念什么?
我有一个.NET Core 3.1 WebApi应用程序,其中UI和API托管在同一根域的不同子域上,例如https://api.domain.com和https://ui.domain.com UI站点设置了一些Cookie。 (....
我最终将https://ui.domain.com
添加到每个{ withCredentials: true }
请求中。有点痛苦,但这是唯一对我有用的东西。