У меня проблема с приложением MVC .net core 2.1, которое работает на Linux-блоках с использованием kestrel за веб-сервером nginx. Эта среда имеет 2 веб-сервера за балансировщиком нагрузки.
Проблема в том, что файл cookie .AspNetCore.Identity.Application используется для аутентификации. Я могу пройти проверку подлинности и перенаправить на контроллер, украшенный
[Авторизоваться]
атрибут (иногда). Однако при следующем запросе cookie-файл ушел, и я получаю 401. Когда мы вынимаем один сервер из микса и пересылаем весь трафик на один сервер, все работает как положено.
При аутентификации с помощью Forms ту же проблему можно решить, указав ключ компьютера. Что эквивалентно ядру .net, использующему идентичность? Я нашел несколько ссылок, которые прошли через мою голову. Они упоминают, что делают что-то вроде этого:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
Я понятия не имею, если это решит проблему, и я не хочу пробовать вещи, не зная, что они делают.