Как найти идентификатор клиента в потоке входа - PullRequest
0 голосов
/ 02 октября 2018

У меня есть приложение Identity server 4, использующее ядро ​​.net.Все работает нормально.То, что я хотел бы сделать, это войти в систему клиента, с которым пользователь входит в систему, так как у нас есть несколько сторонних приложений и хотели бы отслеживать вход пользователя на основе приложения.

Когда пользователь нажимает форму входаони получают следующее

http://localhost:5000/account/login?returnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3DClient%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A49000%252Fsignin-oidc%26response_mode%3Dform_post%26response_type%3Did_token%2520token%2520code%26scope%3Dopenid%2520profile%2520testapi%26state%3DOpenIdConnect.AuthenticationProperties%253DEf4ItTF_eWXPU2OTCYP3CqKsds3ywXrsYSfwxnFQCa-p9LYjfJYPXl6OIJWlKVKAyyN1o_5zeox2Wff5SlXEasQ8r44igT72kaDTzUevTOFwh1pkQyDe9Cwxes3pmFNJJOtet2WRON9XnGkabWtuDYnTbumSqyI4pG_zgb6SsY9A6Fnd-rAPSWFPhsLNVJUXY9PRiw%26nonce%3D636740608058134855.YzdiZmQ2MDYtZmY0Zi00MWZjLTg2NmMtMTIxOGMxMDBlODgxNDZhY2Y1ODQtODNhYi00Yzc4LWIyMDQtYTE2MzhkZWMwYmIy

Идентификатор клиента находится в URL-адресе, и я вижу, что он идет, хотя некоторые из серверов Identity server 4 регистрировались.То, что я не могу понять, это как извлечь его из HttpContext или какой-либо другой переменной, которую я не смог найти.Я также проверил signinmanager и не могу найти его там тоже.

Кто-нибудь знает, где я могу найти идентификатор клиента приложения, в которое входит пользователь?

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете использовать IIdentityServerInteractionService, чтобы получить AuthorizationRequest, этот объект содержит все данные о текущем запросе авторизации, включая свойство ClientId.

var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
var clientId = context.ClientId;
...