ASP.NET Core - сохранение данных POST после перенаправления авторизации атрибута - PullRequest
0 голосов
/ 26 сентября 2019

По сути, это тот же вопрос, что и этот: 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.Надеюсь, в конечном итоге мы все передадим.

...