Замена системы аутентификации на сайте, написанном на ASP.NET MVC

10 000 руб. за проект
18 октября 2022, 20:17 • 5 откликов • 30 просмотров
Имеется САЙТ, написанный на asp.net mvc с
системой аутентификации ASP.NET Identity. БД уже содержит пользователей.

Есть отдельная единая cистема идентификации и
аутентификации пользователей (ЕСИА).


Необходима такая схема авторизации:

При запросе пользователем страницы САЙТА,
требующей авторизации, проверяем залогиненность на ЕСИА.
Проверяем наличие в сессии пользователя
токена для связи сессии пользователя на сайте и на ЕСИА.


Если токена нет, то надо установить связь между
сессиями, вызвав метод attach, в результате чего пользователь будет
перенаправлен на сервер ЕСИА, где установится связь между сессиями, после этого
пользователь вернется обратно на страницу сайта.


Если токен связи есть, то вызываем у сервера
ЕСИА метод userInfo. Если пользователь авторизован на ЕСИА, то метод вернет
информацию о пользователе (id, username, status, role, group_id, email).

По полученному email от ЕСИА ищем пользователя в
локальной БД и авторизуем его.


Чтобы при каждом запросе не дергать сервер ЕСИА,
можно авторизационную информацию кэшировать локально на 5 минут.


Если ЕСИА не вернул информацию о пользователе,
значит он не авторизован. Перенаправляем пользователя на ЕСИА, вызвав метод
serverLogin. Метод запрашивает у ЕСИА адрес страницы авторизации
getLoginUrl и перенаправляет пользователя на этот адрес, передав в returnUrl
адрес, куда будет возвращен пользователь после успешной авторизации.



Все методы системы авторизации есть, но написаны
на php. Необходимо портировать на C# и заменить ASP.NET Identity на описанную выше систему авторизации через ЕСИА. Чтобы можно было на контроллер повесить свой фильтр вместо [Authorize].

Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Всё было быстро и профессионально.
На все вопросы четкие и полные ответы.
1 год назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
 
1 год назад