Я работаю над проектом с Asp.Net MVC 5 и Asp.Net Identity, и я использую двухфакторную аутентификацию. Для входа я использую:
var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent: model.RememberMe, rememberBrowser: model.RememberBrowser);
который является кодом по умолчанию, который поставляется с новым проектом. Тем не менее, мне также нужна способность "доверять" или "помнить" браузер, подобно тому, как банки могут указать, был ли это первый раз, когда вы вошли в систему с определенного браузера/ПК.
Мой вопрос касается свойства RememberBrowser
метода sign и того, что делает .NET Identity с этими данными. Я хочу список сохраненных браузеров и возможность отменить доступ к одному/и/или всем из них. Возможно ли это в рамках Identity? Кроме того, могу ли я определить, был ли браузер "доверен" ранее каким-то типом поиска?
Edit:
Может быть, неплохо сохранить информацию о браузере в базе данных и проверить логин вместо cookie? Таким образом, он может быть показан как список с возможностью его удаления. Я ищу, что сохранить и как интегрировать его с идентификатором Asp.Net без риска для безопасности.
Изменить 2
Вот пример с веб-сайта, который уже использует это:
Изменить 3
Возможно, это может быть реализовано как еще один шаг для аутентификации. Таким образом, в основном у нас будет аутентификация с тремя факторами:
- Первый пользователь регистрируется с пользователем /pass
- Затем мы проверим, включен ли 2FA и при необходимости получите код.
- Мы получаем агент пользователя и IP-адрес и проверяем базу данных, если она новая. Затем при необходимости сообщите.
Итак, я предполагаю, что новый файл cookie должен быть добавлен для сохранения информации обозревателя. Однако мы должны иметь возможность аннулировать этот файл cookie вместе с файлом cookie 2FA.