在IdentityServer中访问UserInfo端点

时间:2018-10-26 18:17:35

标签: c# asp.net-mvc identityserver4

我有一个应用程序,尽管实现了IProfileService并将声明添加到了context.IssuedClaims集合中,但在我的客户端应用程序中仍然无法访问它们。 因此,我想到了(通过阅读此处有关该主题的其他线程),我需要调用UserInfo端点来获取此数据?

问题是,我不确定要传递给UserInfoRequest的令牌值在GetUserInfoAsync对象中放置什么值。

我需要从MVC客户端控制器的索引操作中调用以下内容:

var client = new HttpClient();
            var discovery = await client.GetDiscoveryDocumentAsync(Common.Constants.GlobalConfig.IDENTITY_SERVER_ENDPOINT);
            if (discovery.IsError) throw new Exception(discovery.Error);
            var tokenClient = new TokenClient(discovery.TokenEndpoint, Constants.ClientList.VIEW_MY_BILLS, "secret");
            var tokenResponse = tokenClient.???

            var response = client.GetUserInfoAsync(new UserInfoRequest
            {
                Address = discovery.UserInfoEndpoint,
                Token = User.???
            }

我是否在正确的轨道上以获取有关用户的其他数据(如声明)?如果是,我在上例中如何完成对UserInfo端点的调用?

1 个答案:

答案 0 :(得分:1)

您使用登录过程中收到的access_token对其进行调用。该令牌将具有正确的用户声明和能够调用它的范围。