У меня есть приложение. NET Core 3.1 WebApi, где пользовательский интерфейс и API размещены в разных поддоменах одного и того же домена root, скажем, https://api.domain.com
и https://ui.domain.com
Сайт пользовательского интерфейса устанавливает некоторые файлы cookie ( .domain.com), который мне нужно прочитать в бэкэнде API, но что бы я ни пытался - куки никогда не передаются. У меня включена политика CORS, которая разрешает субдомены и учетные данные whildchar в моих Startup.cs
ConfigureServices:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder =>
{
builder.WithOrigins("https://*.domain.com")
.SetIsOriginAllowedToAllowWildcardSubdomains
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
И использовать его в приложении. Настройка:
app.UseCors("CorsPolicy");
Я также установил политику Кука ie:
app.UseCookiePolicy(
new CookiePolicyOptions()
{
MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax
});
Но при вызове https://api.domain.com
из https://ui.domain.com
ожидается печенье не там.
Если пользовательский интерфейс и API находятся на одном и том же поддомене - это работает. Чего мне не хватает?