public async Task <IActionResult> Index(LoginViewModel LoginViewModel) { if (!ModelState.IsValid) { return(View(LoginViewModel)); } // Connexion par adresse email ou nom d'utilisateur Person UserToLog; // Si une adresse email est détectée if (IsValidEmail(LoginViewModel.Email)) { // Récupération de l'utilisateur par adresse email UserToLog = await _userManager.FindByEmailAsync(LoginViewModel.Email); } else { // Récupération de l'utilisateur par nom d'utilisateur UserToLog = await _userManager.FindByNameAsync(LoginViewModel.Email); } // Connexion de l'utilisateur var TaskResult = await _signInManager.PasswordSignInAsync(UserToLog, LoginViewModel.Password, LoginViewModel.RememberMe, true); if (TaskResult.Succeeded) { // Redirection vers l'action Home par défaut return(Redirect("/")); } else if (TaskResult.IsDisabled) { ModelState.AddModelError(string.Empty, "Ce compte a été désactivé"); return(View(LoginViewModel)); } else if (TaskResult.IsLockedOut) { ModelState.AddModelError(string.Empty, "Ce compte a temporairement été bloqué"); return(View(LoginViewModel)); } else if (TaskResult.DoesNotExists) { ModelState.AddModelError(string.Empty, "Ce compte n'existe pas"); return(View(LoginViewModel)); } else { ModelState.AddModelError(string.Empty, "Vos identifiants sont incorrects"); return(View(LoginViewModel)); } }