Microsoft Identity Web - как заставить пользователя войти в систему? - PullRequest
1 голос
/ 09 июля 2020
• 1000 API MS Graph для получения некоторых дополнительных данных из их профиля, таких как имя, фамилия, имя пользователя и т. д. c. В основном некоторые дополнительные биты информации о пользователе, которые не включаются автоматически в токен, возвращаемый из Azure AD.

Эта часть работает нормально.

Я хочу достичь настройки некоторая форма системного события или триггера, чтобы сообщить мне, когда пользователь успешно вошел в систему, я бы затем использовал этот триггер для запуска запроса Graph API и получения дополнительных атрибутов профиля пользователя. Причина, по которой я хочу это сделать, заключается в том, что каждый раз, когда пользователь запрашивает новую страницу и запускает метод или действие, я могу включать их дополнительные атрибуты в журнал.

Поскольку пакет Microsoft.Identity.Web скрывается Контроллер учетных записей где-то в пакете NuGet (при условии, что это dll или что-то в этом роде), я не могу получить к нему доступ, чтобы посмотреть, что я могу зафиксировать в виде триггера события, который я могу использовать для вышеупомянутого.

Если я не вызову MS Graph после входа пользователя в систему, у меня не будет доступа к некоторым атрибутам профиля пользователя, которые я хочу включить в структуру ведения журнала Serilog.

Как только я получу атрибуты пользователя необходимо из MS Graph, тогда я предполагаю, что лучшим решением было бы сохранить их в памяти в качестве установщиков геттеров на время существования сеанса, в который вошел, так что я могу затем получить к ним доступ из любой модели / контроллера страницы в приложении через DI или модель .

Я думал о том, чтобы просто вызвать MS Graph из On Get (), когда домашняя индексная страница загружается после успешного входа в систему, но проблема заключается в том, что пользователь не обязательно должен входить в систему, сначала посетив домашнюю страницу, они могли сохранить закладку на другой странице, которую они хотят go, чтобы прямо прочь, что означает, что метод OnGet () на домашней странице может никогда не запуститься. Мне нужно более пуленепробиваемое решение, учитывая, что я должен убедиться, что эти дополнительные атрибуты профиля пользователя извлекаются каждый раз в обязательном порядке, независимо от того, какая страница посещается впервые и вызывает процесс входа в систему.

Примечание: я наблюдал тот факт, что если я go перехожу прямо на страницу с включенной авторизацией, то после входа в систему OID C просто возвращает меня на ту же страницу.

Последним шагом в этой загадке будет удаление сохраненные атрибуты профиля пользователя из памяти после выхода пользователя из системы, но это должно быть достаточно просто, учитывая, что сеанс выхода всегда возвращает меня на https://localhost: 5001 / MicrosoftIdentity / Account / SignedOut

Если у кого-то есть идеи о том, что Я мог бы поработать с этой библиотекой для достижения вышеуказанного, было бы здорово, спасибо

1 Ответ

2 голосов
/ 10 июля 2020

Я нашел кое-что в Microsoft Identity Web для пользовательского кода:

AddSignIn имеет другое переопределение, которое принимает делегатов вместо раздела конфигурации. Переопределение с помощью раздела конфигурации фактически вызывает переопределение с делегатами. В расширенном сценарии ios вам может потребоваться добавить конфигурацию с помощью кода или если вы хотите подписаться на события OpenIdConnect. Например, если вы хотите обеспечить пользовательскую обработку при проверке токена.

https://github.com/AzureAD/microsoft-identity-web/wiki/web-apps#using -delegate-events

Вот примеры кода Microsoft для ядро ASP. net, для многих случаев: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...