public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null) { if (ModelState.IsValid) { var login = CPF.TirarFormatacao(model.Login); if (CPF.Validar(login) == false) { _toastNotification.AddErrorToastMessage("Cpf inválido!"); return(View(model)); } var cpf = new CPF(model.Login); cpf.SemFormatacao(); var usuario = await _userManager.FindByNameAsync(cpf.Codigo); if (usuario == null) { var mensagemUsuario = "Credenciais Inválidas!"; _toastNotification.AddErrorToastMessage(mensagemUsuario); ModelState.AddModelError(string.Empty, mensagemUsuario); return(View(model)); } var result = await _signInManager.PasswordSignInAsync ( userName : cpf.Codigo, password : model.Senha, isPersistent : model.Lembrar, lockoutOnFailure : true ); if (result.Succeeded) { _toastNotification.AddSuccessToastMessage("Bem Vindo de volta!"); _logger.LogWarning($"Logando Usuario{usuario.UserName}, Email: {usuario.Email}."); return(RedirectToAction("Index", "Home")); } if (result.IsLockedOut) { var senhaCorreta = await _userManager.CheckPasswordAsync(usuario, model.Senha); if (senhaCorreta) { var mensagemUsuarioBloqueado = "Conta esta bloqueada!"; _logger.LogWarning($"Conta bloqueada Usuario: {usuario.UserName}, Mensagem: {mensagemUsuarioBloqueado}."); _toastNotification.AddErrorToastMessage(mensagemUsuarioBloqueado); ModelState.AddModelError(string.Empty, mensagemUsuarioBloqueado); } } var mensagemErrorUsuario = "Credenciais inválidas!"; _toastNotification.AddErrorToastMessage(mensagemErrorUsuario); ModelState.AddModelError(string.Empty, mensagemErrorUsuario); } return(View(model)); }