public async Task <ActionResult> SendSecurityCode(SendSecurityCodeViewModel model) { var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction("Login")); } CheckCurrentTenant(await _signInManager.GetVerifiedTenantIdAsync()); return(RedirectToAction( "VerifySecurityCode", new { provider = model.SelectedProvider, returnUrl = model.ReturnUrl, rememberMe = model.RememberMe } )); }
public async Task <ActionResult> SendSecurityCode(SendSecurityCodeViewModel model) { var tenantId = await _signInManager.GetVerifiedTenantIdAsync(); using (CurrentUnitOfWork.SetTenantId(tenantId)) { if (!await _signInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { throw new UserFriendlyException(L("SendSecurityCodeErrorMessage")); } return(RedirectToAction( "VerifySecurityCode", new { provider = model.SelectedProvider, returnUrl = model.ReturnUrl, rememberMe = model.RememberMe } )); } }
public async Task <ActionResult> SendSecurityCode(SendSecurityCodeViewModel model) { var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction("Login")); } CheckCurrentTenant(await _signInManager.GetVerifiedTenantIdAsync()); if (model.SelectedProvider != GoogleAuthenticatorProvider.Name) { var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); var message = L("EmailSecurityCodeBody", code); if (model.SelectedProvider == "Email") { await _emailSender.SendAsync(await _userManager.GetEmailAsync(user), L("EmailSecurityCodeSubject"), message); } else if (model.SelectedProvider == "Phone") { await _smsSender.SendAsync(await _userManager.GetPhoneNumberAsync(user), message); } } return(RedirectToAction( "VerifySecurityCode", new { provider = model.SelectedProvider, returnUrl = model.ReturnUrl, rememberMe = model.RememberMe } )); }