public async Task <ActionResult> Login(ContaLoginViewModelo modelo) { if (!ModelState.IsValid) { return(View(modelo)); } var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario == null) { return(SenhaOuEmailIncorreto(modelo)); } var signInResultado = await SignInManager.PasswordSignInAsync( usuario.UserName, modelo.Senha, isPersistent : modelo.ContinuarLogado, shouldLockout : true); switch (signInResultado) { case SignInStatus.Success: if (!usuario.EmailConfirmed) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); return(View("AguardandoConfirmacao")); } return(VerificaEmailELogaUsuario(usuario)); case SignInStatus.LockedOut: var senhaCorreta = await UserManager.CheckPasswordAsync(usuario, modelo.Senha); if (senhaCorreta) { ModelState.AddModelError("", "Conta bloqueada!"); return(View("Login", modelo)); } return(SenhaOuEmailIncorreto(modelo)); default: return(SenhaOuEmailIncorreto(modelo)); } }
private ActionResult SenhaOuEmailIncorreto(ContaLoginViewModelo modelo) { ModelState.AddModelError("", "Senha ou email inválidos!"); return(View("Login", modelo)); }