如何在登录流中查找客户端 ID



我有一个使用 .net 核心的身份服务器 4 应用程序。 一切正常。 我想做的是记录用户正在登录的客户端,因为我们有许多第三方应用程序,并希望根据应用程序跟踪用户登录。

当用户点击登录表单时,他们会得到以下内容

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

客户端 ID 在 url 中,我可以看到它来了,尽管一些身份服务器 4 中间正在记录。 我无法弄清楚的是如何从 HttpContext 或其他一些我无法找到的变量中获取它。 我也检查了登录管理器,似乎也找不到它。

有谁知道我在哪里可以找到用户登录时使用的应用程序的客户端 ID?

可以使用IIdentityServerInteractionService获取此对象包含有关当前授权请求的所有数据(包括 ClientId 属性(AuthorizationRequest

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

最新更新