Entity framework core IdentityServer4如何将ClientProperties获取到令牌中

Entity framework core IdentityServer4如何将ClientProperties获取到令牌中,entity-framework-core,identityserver4,openid-connect,Entity Framework Core,Identityserver4,Openid Connect,我有一个带有EFCore实现的IdentityServer4,它运行良好。我需要进行更改,以获取令牌中包含的一些客户机信息,这证明是有问题的。我可以将信息包含在ClientClaims表中,并在令牌中返回,但我的理解是,我应该将此类信息放入ClientProperties表中。当我这样做时,它不会在令牌中返回,并且我找不到关于如何将数据从ClientProperties表中获取到令牌中的任何信息 您可能会问,为什么我不直接使用ClientClaims表,但我使用该表存储客户端可以访问的系统区域,

我有一个带有EFCore实现的IdentityServer4,它运行良好。我需要进行更改,以获取令牌中包含的一些客户机信息,这证明是有问题的。我可以将信息包含在ClientClaims表中,并在令牌中返回,但我的理解是,我应该将此类信息放入ClientProperties表中。当我这样做时,它不会在令牌中返回,并且我找不到关于如何将数据从ClientProperties表中获取到令牌中的任何信息

您可能会问,为什么我不直接使用ClientClaims表,但我使用该表存储客户端可以访问的系统区域,因此不希望将其用于交叉用途

如果您能提供任何帮助,我们将不胜感激。

字典,用于根据需要保存任何自定义的客户端特定值

客户机属性只是一个口述,您可以使用它来存储有关客户机的额外信息

下面是我使用它的一个例子

Id  ClientId    Key         Value
265 25          updatedby   21248582
266 25          updateddate 2018-05-30T06:45:10.2389386+00:00
没有说明该信息应作为索赔的一部分


您可能会说
“但是我已经说过我不想使用ClientClaims”
,但这就是
ClientClaims
的目的。

客户端。属性用于保存与该客户端相关的数据


事实上,交换信息的唯一方式是通过索赔,这是最佳做法。您可以包括自定义索赔名称,只需确保它们不会与标准名称冲突。

谢谢DalmTo。如果永远无法将信息返回给客户端,那么拥有ClientProperties有什么意义?如果您只能在IdentityServer组件中使用此信息,则可能会受到很大限制。您可以在identity server上重新获取此信息。在验证用户身份时,我有另一个值,该值验证该用户的配置文件中是否安装了与他们登录的客户端关联的应用程序。这些值不是作为声明输入的,但我想这并不意味着您不能更改profileservice以返回它们。