sro*_*e98 5 identity asp.net-identity .net-core asp.net-core-2.2 .net-core-2.2
在我的 dotnet core 2.2 应用程序中,我尝试启用两因素身份验证。在启动类中,我创建了一个种子数据函数,它将生成示例用户。我使用 UserManager 创建用户,然后设置需要两个因素的标志。但是,当用户登录时,它总是成功,并且永远不会到达 RequireTwoFactor 标志 if 语句。
我很确定我在创业课程中遗漏了一些东西。
感谢所有帮助。
启动类的Configure方法
services.AddIdentity<IdentityUser, IdentityRole>(options =>
{
options.Tokens.AuthenticatorTokenProvider = "email";
});
Run Code Online (Sandbox Code Playgroud)
种子数据法
var User = new IdentityUser() { UserName = email, Email = email };
await UserManager.CreateAsync(User, password);
await UserManager.SetTwoFactorEnabledAsync(User, true);
Run Code Online (Sandbox Code Playgroud)
登录页面
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}
Run Code Online (Sandbox Code Playgroud)
PvP*_*ten -1
我曾经也有过一样的问题。
今天我更新到.net core 3.0.100-rc1-014190,问题解决了。因此,如果在 ASPNetUsers 表中设置了“TwoFactorEnabled”标志,PasswordSignInAsync 将返回带有 RequiresTwoFactor 的结果
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |