public async Task <IActionResult> SecretAuth(string code, string provider, bool rememberMe, string returnUrl = null) { // Require that the user has already logged in via username/password or external login var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } string message = "Verificación de 2 pasos con Pregunta Secreta"; var model = new SecretAuthViewModel { SecretQuestion = user.SecretQuestion, Provider = provider, RememberMe = rememberMe, ReturnUrl = returnUrl, Code = code, Response = user.SecretResponse }; ViewData["Message"] = message; return(View(model)); }
public async Task <IActionResult> SecretAuth(SecretAuthViewModel model) { if (ModelState.IsValid) { if (model.Token == model.Response) { //var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); //return RedirectToAction("Index", "Manage"); var result = await _signInManager.TwoFactorSignInAsync(model.Provider, model.Code, model.RememberMe, model.RememberBrowser); if (result.Succeeded) { return(RedirectToLocal(model.ReturnUrl)); } if (result.IsLockedOut) { _logger.LogWarning(7, "User account locked out."); return(View("Lockout")); } else { ModelState.AddModelError(string.Empty, "Código inválido"); return(View(model)); } } else { ModelState.AddModelError("Code", "El código no es válido"); } } return(View(model)); }