我构建了一个使用 Asp.Net Identity的IdentityServer4服务器。然后,我为其中一个用户启用了双因素身份验证。然后我检查了它是否反映了数据库。
现在,当我打电话时,
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false)
它总是返回 RequiresTwoFactor 作为 false。如果有人能告诉我是什么原因造成的,我将不胜感激。
注意:
我还在启动中添加了以下代码行.cs
services.AddTransient<IEmailSender, AuthVerification>();
services.AddTransient<ISmsSEnder, AuthVerification>();
好的。原来我缺少以下代码
.AddDefaultTokenProviders();
在services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<AppDBContext>()
所以应该是
services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<AppDBContext>().AddDefaultTokenProviders();