public IActionResult TwoFactorLogin(TwoFactorLoginDto twoFactorLogin) { if (!ModelState.IsValid) { return(BadRequest()); } var user = _signInManager.GetTwoFactorAuthenticationUserAsync().Result; if (user == null) { return(BadRequest()); } var result = _signInManager.TwoFactorSignInAsync(twoFactorLogin.Provider, twoFactorLogin.Code, twoFactorLogin.IsPersistent, false).Result; if (!result.Succeeded) { ViewBag.Error = "کد وارد شده صحیح نمی باشد"; } if (result.Succeeded) { return(RedirectToAction("index", "home")); } else if (result.IsLockedOut) { ModelState.AddModelError("", "حساب شما قفل شده است"); return(View()); } return(View()); }
public IActionResult TwoFactorLogin(string UserName, bool IsPersisent) { TwoFactorLoginDto twoFactor = new TwoFactorLoginDto(); var user = _userManager.FindByNameAsync(UserName).Result; if (user == null) { return(BadRequest()); } var providers = _userManager.GetValidTwoFactorProvidersAsync(user).Result; if (providers.Contains("Phone")) { string code = _userManager.GenerateTwoFactorTokenAsync(user, "Phone").Result; SmsService smsService = new SmsService(); smsService.Send(user.PhoneNumber, code); twoFactor.Provider = "Phone"; twoFactor.IsPersistent = IsPersisent; } else if (providers.Contains("Email")) { string code = _userManager.GenerateTwoFactorTokenAsync(user, "Email").Result; EmailService emailService = new EmailService(); emailService.Execute(user.Email, $"Two Factor Code:{code}", "Two Factor Login"); twoFactor.Provider = "Email"; twoFactor.IsPersistent = IsPersisent; } return(View("TwoFactorLogin", twoFactor)); }
private static ITwoFactorLogin?Map(TwoFactorLoginDto dto) { if (dto == null) { return(null); } return(new TwoFactorLogin { Id = dto.Id, UserOrMemberKey = dto.UserOrMemberKey, ProviderName = dto.ProviderName, Secret = dto.Secret }); }
private void SaveLoginToken(int userId, string token) { var twoFactorLoginDto = new TwoFactorLoginDto { Token = token, ExpirationDate = ExpirationDateTime, UserId = userId, }; _logger.Debug($"SaveLoginTokenInfo: {twoFactorLoginDto}"); _loginRepository.SaveLoginToken(twoFactorLoginDto); }
public async Task <TwoFactorLoginDto> GetTwoFactorLoginForEdit() { var user = await GetCurrentUserAsync(); var dto = new TwoFactorLoginDto { IsTwoFactorEnabled = user.IsTwoFactorEnabled, QrCodeSetupImageUrl = user.GoogleAuthenticatorKey != null ? _googleTwoFactorAuthenticateService.GenerateSetupCode(GoogleAuthenticatorConst.Issuer, user.UserName, user.GoogleAuthenticatorKey, 300, 300).QrCodeSetupImageUrl : "", IsGoogleAuthenticatorEnabled = user.GoogleAuthenticatorKey != null }; return(dto); }
public void SaveLoginToken(TwoFactorLoginDto dto) { _loginRepository.SaveLoginToken(dto); }