0

我正在使用 Aspnet Boilerplate 来管理多租户系统。我目前正在尝试打开 2 因素身份验证,该身份验证已包含在样板文件中。我已经登录到主机并打开了 2FA(因为我知道它不能在租户中打开,除非它首先在主机中打开)。完成此操作后,我现在可以看到在每个租户中打开 2FA 的设置(我已经这样做了)。我的问题是,虽然确实按预期要求主机用户提供代码,但从来没有租户用户。我已将其缩小到以下问题。成功登录后,这称为:

var signInResult = await _signInManager.SignInOrTwoFactorAsync(loginResult, loginModel.RememberMe);

这总是返回RequiresTwoFactor == false。这样做的原因是,在此调用中,调用:

GetValidTwoFactorProvidersAsync(TUser user)

依次调用 .NET Core 中的同名函数。此调用返回一个空列表,这意味着我没有注册 TwoFactor Providers。这很奇怪,因为作为主机登录我得到了提供者,但作为租户它返回空。有什么我想念的为什么会发生这种情况。此外,那些(电子邮件和短信)提供商首先在样板代码中的确切位置注册?

4

1 回答 1

1

请参阅AbpZeroSettingProvider.cs上的 2FA 配置

但是 Aspnet Boilerplate 中不包含两因素身份验证的实现。

这是AspNetZero中的一项功能,请参阅https://aspnetzero.com/Documents/Development-Guide-Core#two-factor-login

于 2018-10-09T07:51:19.653 回答