我正在尝试在我们的应用上设置双因素身份验证。更新了AspNetUsers表中的用户,并将其TwoFactorEnabled值设置为1以进行测试。
在调试时,signInManager.PasswordSignInAsync
只返回“成功”,而不是“需要验证”。
这就是这条线
signInStatus = await signInManager.PasswordSignInAsync(viewModel.Email, viewModel.Password, true, shouldLockout: false);
(通常会回答类似的问题,因为第一个值应该是名称而不是电子邮件,但我不认为这是问题。登录正常,例如,如果密码错误,则返回失败。)
我将下面的行添加到Startup.Auth.cs中
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(10));
我仍然可以使用我喜欢的东西(虽然我不想)
if (signInStatus == SignInStatus.Success && user.TwoFactorEnabled == true)
{
//rest of code to be written
}
但这感觉太过于临时解决方案而且容易出现许多未来的错误。我更喜欢使用Identity,但由于这个问题,我现在不能。
很明显,我做错了什么或遗失了什么,但我不知道是什么。提前致谢。
我通过将SignInManager
代码直接复制到我的网站并通过它来找到我的解决方案,你可以在这里了解更多:https://stackoverflow.com/a/52357870/550975