ASP.NET MVC - Как удалить файлы cookie для входа в систему с сайта asp.net - PullRequest
0 голосов
/ 02 мая 2019

Как избежать, чтобы при входе браузер сохранял эти данные для входа в систему, и пользователь мог вводить их даже после закрытия браузера

Вот мой контроллер входа в систему

 public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        var userDTO = new ExpandedUserDTO();

        switch (result)
        {                            
            case SignInStatus.Success:
                ApplicationUser user = await UserManager.FindAsync(model.Email, model.Password);
                return RedirectToAction("RedirectLogin");

            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Falha ao Realizar login, usuário ou senha incorretos.");
                return View(model);
        }
    }

1 Ответ

1 голос
/ 03 мая 2019

Третий параметр SignInManager.PasswordSignInAsync определяет, сохранится ли файл cookie после закрытия браузера. Если вы не хотите, чтобы файл cookie сохранялся, всегда передавайте false для этого параметра.

См. Документацию для этого метода здесь - https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.signinmanager-1.passwordsigninasync?view=aspnetcore-2.2

Вы можете попробовать внести следующие изменения:

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, false, shouldLockout: false);
    var userDTO = new ExpandedUserDTO();

    switch (result)
    {                            
        case SignInStatus.Success:
            ApplicationUser user = await UserManager.FindAsync(model.Email, model.Password);
            return RedirectToAction("RedirectLogin");

        case SignInStatus.LockedOut:
            return View("Lockout");
        case SignInStatus.RequiresVerification:
            return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
        case SignInStatus.Failure:
        default:
            ModelState.AddModelError("", "Falha ao Realizar login, usuário ou senha incorretos.");
            return View(model);
    }
}
...