public async Task <IActionResult> LoginWith2Fa() { if (this.User.Identity.IsAuthenticated) { return(this.AdminDashboardActionResult); } var user = await this.userManager.GetTwoFactorAuthenticationUserAsync(); if (user == null || !(await this.userClaimsService.CheckUserForAccessAdministrationPermissionAsync(user.Email))) { return(this.NotFound()); } AdminLoginWith2FaViewModel model = new AdminLoginWith2FaViewModel(); return(this.View(model)); }
public async Task <IActionResult> LoginWith2Fa(AdminLoginWith2FaViewModel model) { if (this.User.Identity.IsAuthenticated) { return(this.AdminDashboardActionResult); } try { var user = await this.userManager.GetTwoFactorAuthenticationUserAsync(); if (user == null || !(await this.userClaimsService.CheckUserForAccessAdministrationPermissionAsync(user.Email))) { return(this.NotFound()); } var requestResult = await this.Mediator.Send(new LoginWithTwoFactorAuthenticationCommand(user, model.TwoFactorCode)); if (requestResult.Result.Succeeded) { await this.SignInAsync(requestResult.User); return(this.AdminDashboardActionResult); } else if (requestResult.Result.IsLockedOut) { return(this.Lockout); } } catch (ValidationException ex) { this.ModelState.ApplyValidationException(ex, true); } catch (Exception ex) { await this.Logger.LogErrorAsync(ex); } return(this.View(model)); }