我已使用此处的指南在.net核心mvc应用程序中设置了2因子身份验证。 这一切都很好,但是它依赖于用户进入其帐户并设置2FA。有什么方法可以强制用户执行此操作,以便所有用户都必须使用2FA?
一种方法是在登录过程中通过以下方式检查用户是否设置了2FA:
var user = await _userManager.FindByEmailAsync(Input.Email);
var twoFactorEnabled = user.TwoFactorEnabled;
如果为false,则可以将用户重定向到配置2FA page(./Manage/TwoFactorAuthentication
),在用户设置2FA并启用2FA之后,TwoFactorEnabled
在AspNetUsers
table中将是True
,然后在登录过程中,身份将自动将用户重定向到./LoginWith2fa
2FA登录页面(如果当前)用户的TwoFactorEnabled
值为true。
这种实现方式的问题在于,用户可以简单地通过URL导航以避免这种情况,从而使2FA并未真正得到实施。