我正在通过使用电话号码在Asp MVC应用程序中实现2FA。到目前为止,我可以收到身份验证代码并进行验证,而不会出现问题。我希望每天仅向用户询问一次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);
}
在上述切换语句中,SignInStatus.RequiresVerification调用另一个函数来查看用户是否必须提供验证码。如果不是,则调用RedirectToLocal(model.ReturnUrl)方法,但它代替登录用户,而是将用户再次重定向到登录页面。我以为这是因为用户尚未登录。 关于如何完成此任务的任何想法。