我已经构建了一个使用Asp.Net Identity的IdentityServer4服务器。然后,我为其中一个用户启用了双因素身份验证。然后我检查它是否反映了数据库。
现在,当我打电话时,
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false)
它始终将RequiresTwoFactor返回为false。如果有人能告诉我导致它的原因,我将不胜感激。
注意:
我还在Startup.cs中添加了以下代码行
services.AddTransient<IEmailSender, AuthVerification>();
services.AddTransient<ISmsSEnder, AuthVerification>();
答案 0 :(得分:0)
确定。事实证明我错过了以下代码
.AddDefaultTokenProviders();
在services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<AppDBContext>()
所以它应该是
services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<AppDBContext>().AddDefaultTokenProviders();