По сути, это тот же вопрос, что и этот: ASP.NET MVC - сохранение POST-данных после перенаправления авторизации атрибута входа в систему , за исключением того, что 7 лет назад об этом не спрашивали, а это касается ASP.NET Core,что довольно сильно отличаетсяЯ использую атрибут [Authorize]
, чтобы выполнить свою основную проверку подлинности доступа, просто чтобы проверить, вошел ли пользователь в систему вообще.Если нет, то он пинает их обратно на страницу входа.Вот настройки служб для этого.
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "loginId";
});
services.ConfigureApplicationCookie(options => options.LoginPath = "/Account/Logout");
Вот мое действие Logout.
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> Logout(string returnUrl = "/cgi-s/admin.cgi")
{
await HttpContext.SignOutAsync();
if (HttpContext.Request.Cookies.TryGetValue("loginId", out string loginId))
{
User auth = _context.Users.Where(a => a.LoginId.Equals(loginId)).FirstOrDefault();
if (auth != null)
{
auth.LoginId = string.Empty;
await _context.SaveChangesAsync();
}
}
return Redirect("/Account/Login?returnUrl="+returnUrl);
}
Сейчас я просто использую поведение по умолчанию с возвращаемой строкой URL, чтобы вернуться кПопытка страницы после успешного входа.Есть ли способ настроить это так, чтобы данные POST также сохранялись?
Я пробовал несколько разных вещей, например, пользовательское промежуточное ПО, которое хранит данные постов, которые затем извлекаются при входе в систему, но у меня нет 'Я не нашел ничего, что не нашло дыр в безопасности после этого.
Есть ли простой способ сделать это, чего мне просто не хватает?
Спасибо.
PS.Пожалуйста, не обращайте внимания на странности, происходящие в действии выхода из системы.Мы - команда из двух человек, работающая над 20-летним CGI-сайтом Perl, который медленно переходит на .NET, пытаясь не отставать от новых функций и исправлений ошибок, поэтому все странно, пока мы запускаем Perl CGI вместе с некоторым кодом .NET наIIS с Postgres.Надеюсь, в конечном итоге мы все передадим.