Я использую 2FA в приложении Asp MVC, используя номер телефона.До сих пор я могу получить код аутентификации и проверить без проблем.Проблема, которую я хочу, чтобы пользователь спрашивал 2FA только один раз в день.Я добавляю еще один столбец в таблицу AspNetUser, который проверяет, требуется ли пользователю проверять или нет.Но проблема заключается в том, что после проверки, что пользователю не требуется, чтобы 2FA снова перенаправлял его на страницу входа.
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(model.ReturnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
if (CheckRequiresVerification(model.UserName))
{
return RedirectToAction("SendCode", new { ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe });
}
return RedirectToLocal(model.ReturnUrl);
case SignInStatus.Failure:
default:
//Log login attempt
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
В приведенном выше случае оператора switch SignInStatus.RequiresVerification вызывает другую функцию, чтобы определить, должен ли пользователь предоставить код подтверждения.или нет.Если не вызывается метод RedirectToLocal (model.ReturnUrl), но вместо входа в систему пользователь перенаправляет пользователя на страницу входа снова.Я думал, что это потому, что пользователь еще не авторизован.Любая мысль о том, как выполнить эту задачу.