У меня есть веб-API ASP.NET Core, размещенный на Azure. Затем мое угловое приложение передается на Azure и в другом домене.
Всякий раз, когда я пытаюсь войти в систему с углового входа, я вижу, что мой api rest бэкэнда отправляет обратно cookie в заголовках, но браузер не сохраняет этот cookie. Я перепробовал все, что мог придумать, но безуспешно.
В моем ASP.Net Core выдача cookie:
Response.Cookies.Append("TEST_COOKIE.test.test", "NOTHING HERE TO SEE", new CookieOptions()
{
SameSite = SameSiteMode.None
});
Конфигурации CORS:
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
new Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder()
.WithOrigins(jwtAppSettingOptions[nameof(JwtIssuerOptions.Audience)])
.AllowAnyHeader()
.AllowCredentials()
.Build()
);
});
Использование CORS:
app.UseMiddleware<JwtBearerMiddleware>()
.UseAuthentication()
.SeedDatabase()
.UseHttpsRedirection()
.UseCors("AllowAll")
.UseMvc();
Вот ответ, который я вижу, возвращаясь из запроса на вход в систему:
![Response headers](https://i.stack.imgur.com/GXW9v.png)
Я пробовал такие вещи, как:
1. Отправка почтового запроса из Angular с опцией withCredentials: true
. Неудачно.
2. Я попытался отключить и удалить один за другим каждый из методов CORS, не повезло.
3. Я попытался жестко запрограммировать параметр WithOrigins
, не повезло.
Я понятия не имею, что еще делать, потому что все, что я прочитал, указывает, что это должно работать.