Я использую Aspnet Boilerplate для управления мультитенантной системой.В настоящее время я пытаюсь включить двухфакторную аутентификацию, которая запекается в шаблоне.Я вошел в хост и включил 2FA (потому что я понимаю, что он не может быть включен в tenanats, если он не включен в хосте сначала).После того, как я это сделаю, я теперь вижу настройки для включения 2FA в каждом арендаторе (что я и сделал).Моя проблема заключается в том, что, хотя пользователи хоста действительно запрашивают код, как и ожидалось, пользователи-арендаторы никогда не запрашивают код.Я сузил это до следующей проблемы.При успешном входе это называется:
var signInResult = await _signInManager.SignInOrTwoFactorAsync(loginResult, loginModel.RememberMe);
Это всегда возвращает RequiresTwoFactor == false
.Причина этого заключается в том, что в рамках этого вызова выполняется вызов:
GetValidTwoFactorProvidersAsync(TUser user)
, который, в свою очередь, вызывает функцию с тем же именем в .NET Core.Этот вызов возвращает пустой список, что означает, что у меня нет зарегистрированных провайдеров TwoFactor.Что странно, потому что, входя в систему как хост, я получаю провайдеров, но в качестве арендатора он возвращается пустым.Есть ли что-то, что я пропускаю, почему это может происходить.Кроме того, где именно в стандартном коде те (провайдеры электронной почты и SMS) зарегистрированы в первую очередь?