【发布时间】:2022-02-02 01:23:30
【问题描述】:
我正在构建一个身份服务器,但我无法让双因素身份验证工作。我有一个可以运行的演示项目,但据我所知,某处有一个“神奇的发生”时刻。用户登录正常,然后点击以下代码:
//logged in ok, check for mfa
if (user.TwoFactorEnabled)
{
//make sure it has sms as an option
var providers = await _userManager.GetValidTwoFactorProvidersAsync(user);
if (!providers.Contains("Phone"))
但获取有效的两个因素提供程序返回 null。我有一个网站,它返回“电话”和“电子邮件”,但我不知道它们是在哪里专门设置的。在我的 Startup.cs 页面中,我添加了这样的短信发件人:
services.AddTransient<ISmsSender, SmsSender>();
在 asp.net 身份(不是核心)中,我可以像这样专门设置它们:
usermanager.RegisterTwoFactorProvider("SMS", new PhoneNumberTokenProvider<IdentityUser> {MessageFormat = "Code: {0}"});
我已经测试了我的 Twilio SMS 类,它可以正常发送文本。但是我该如何注册呢?任何想法将不胜感激。
【问题讨论】:
标签: .net-core identityserver4 two-factor-authentication