Я пытаюсь реализовать двухфакторную аутентификацию на основе приложений и SMS в своем базовом приложении .NET.Пользователи смогут использовать одно или другое, я не имею в виду позволить им использовать оба.У меня есть все, чтобы пользователи могли настроить оба и войти в систему с обоими, но я не могу определить, когда пользователь входит в систему, какой тип TFA использовать для этого пользователя.Мне нужно знать, нужно ли просто перевести их на страницу ввода кода, чтобы ввести токен из их приложения, или сначала отправить токен по SMS.
Я могу сказать, включено ли оно в целом, с помощью userManager.GetTwoFactorEnabledAsync
, но я не могу найти какой-либо способ в Identity сохранить или получить какой метод настроил пользователь.Я вижу метод GetAuthenticatorKeyAsync
, который, я предполагаю, я мог бы использовать, чтобы определить, настроено ли у них приложение для проверки подлинности, но это не достаточно точно - если я добавил другой тип tfa, не относящийся к приложению (например, электронная почта), я бы не знал разницу.
Я могу достаточно легко сохранить ее с пользователем в БД вручную, но если есть способ сделать это в самой Identity, я бы предпочел сделать это.