Я использую. NET Core 3.1 в качестве серверной части и Angular 10 в качестве интерфейса. Они размещены вместе в docker. Когда пользователь входит в систему, бэкэнд возвращает повар ie (приготовление сеанса ie, если запомнить меня ложно, в противном случае устанавливается дата истечения срока действия), что является правильным поведением, НО наш бэкэнд иногда завершает сеанс из-за перезапуска или что угодно.
Моя проблема в том, что, поскольку у Cook ie есть дата истечения срока действия в браузере, Cook ie не очищается (например, если пользователь не закрыл браузер в сафари, я не 'не знаю о других браузерах), поэтому интерфейсная часть думает, что мы прошли проверку подлинности и хочет получить доступ к ресурсам сервера, который, как и ожидалось, возвращает неавторизованный HTTP-ответ. Есть ли способ заставить серверную часть возвращать просроченный Cook ie, чтобы браузер удалял сеансовый cook ie, или заставить браузер удалить Cook ie?
My startup.cs , где я настраиваю файлы cookie.
services.ConfigureApplicationCookie(_ => {
_.Events.OnRedirectToLogin = context => {
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
return Task.CompletedTask;
};
_.Events.OnRedirectToLogout = context => Task.CompletedTask;
_.Events.OnRedirectToAccessDenied = context => {
context.Response.StatusCode = (int) HttpStatusCode.Forbidden;
return Task.CompletedTask;
};
_.Events.OnRedirectToReturnUrl = context => Task.CompletedTask;
_.AccessDeniedPath = PathString.Empty;
_.LoginPath = PathString.Empty;
_.LogoutPath = PathString.Empty;
_.ReturnUrlParameter = PathString.Empty;
_.SlidingExpiration = true;
_.ExpireTimeSpan = TimeSpan.FromMinutes(60.0D);
_.Cookie.HttpOnly = false;
});