@MADm

Как изменить проект чтобы прикрутить asp.net Identity вместо самописной аутентификации?

Есть проект, аутентификация была написана самостоятельно, принцип примерно такой:
При успешной проверке пароля в сессию ложился экземпляр user, потом самописными фильтрами проверялось наличие в сессии экземпляра. Еще был хелпер который на основании контекста запроса возвращал екземпляр юзера и на основании этого менялась логика в view и в контроллерах, пробрасывался в сервисы. Еще была фишка по подмене юзера. Админ мог выбрать любого юзера и в сессию помещался его екземпляр этого юзера.
Сейчас требуется убрать самописку и добавить asp.net identity. Столкнулся с кучей проблем при изначальном прикручивании identity к проекту, такие как локализация, невозможность стандартными менеджерами сделать двухфакторку на 1 странице и тд.. Вопрос такой, каким образом можно реализовать хелпер который бы вернул екземпляр ApplicationUser на основании контекста запроса. Каким образом можно реализовать фишку "подмены" юзера? (Чтоб админ мог притворится любым юзером или сменить роль на любую, временно)

Пока придумал использовать кеш в виде словаря userid applicationUser, но думаю это плохое решение.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
@serber
Странные вещи говорите. UserManaget содержит два метода
  • SendTwoFactorCodeAsync
  • VerifyTwoFactorTokenAsync

Мы можете спокойно реализовать все на 1 странице, ничто Вас в этом не ограничивает.
Единственное - потребуется 2 действия контроллера, просто вызывайте их c AJAX.

Локализация вся основана на ресурсах, есть ресурсы и для русского языка в nuget.

Для реализации "подмены" юзера можно использовать абстракции из ASP Identity. Выбираете нужного пользователя, делаете SignOut для текущего и затем SignIn для выбранного. В Claims можете добавить роль администратора, чтобы сохранить возможности администратора.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы