在 B2C 自定义策略中复制日期时间声明
Copying dateTime claims in B2C Custom Policy
在 B2C 自定义策略中,我将日期时间值存储在扩展属性中。在用户登录时更新原始属性之前,我需要将此属性的值复制到另一个属性中。这样我们就可以显示 'You last signed into the application on: dd-mmm-yyyy.'
因此我需要存储用户上次登录的日期时间。第一步,我通过存储当前登录的日期时间来完成,但我需要将此值复制到第二个属性中在使用此登录日期时间覆盖原件之前。
但是,在检查 B2C 自定义策略中的可用声明转换列表时,似乎无法执行此操作:https://docs.microsoft.com/en-us/azure/active-directory-b2c/general-transformations,因为 CopyClaim 转换仅适用于字符串和整数。日期的可用转换列表是有限的。
我能想到的解决这个问题的唯一可能方法是调用 rest api,我在其中传入原始属性的值,然后 return 这个完全相同的值作为 api 的输出,然后将此值存储在另一个属性中。
这似乎太夸张了,只是将值从一个属性复制到另一个属性。有没有更简单的方法?
为什么不为此使用不同的逻辑。
创建两个属性:[Date]extension_currentLoginTime
& [Date]extension_lastLoginTime
.
当用户注册或首次登录时,使用 GenerateDateTime
声明转换并将 currentTime
声明写入 extension_currentLoginTime
和 extension_lastLoginTime
。
Return extension_lastLoginTime
入令牌
当用户执行登录时,读取 extension_currentLoginTime
并将其保存到 extension_lastLoginTime
以下代码段显示了如何将一项声明的内容写入任何属性。
这意味着,您无需先复制声明。
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="extension_currentLoginTime" PartnerClaimType="extension_lastLoginTime"/>
</PersistedClaims>
使用 GenerateDateTime
声明转换并将 currentTime
声明写入 extension_currentLoginTime
。
在 B2C 自定义策略中,我将日期时间值存储在扩展属性中。在用户登录时更新原始属性之前,我需要将此属性的值复制到另一个属性中。这样我们就可以显示 'You last signed into the application on: dd-mmm-yyyy.'
因此我需要存储用户上次登录的日期时间。第一步,我通过存储当前登录的日期时间来完成,但我需要将此值复制到第二个属性中在使用此登录日期时间覆盖原件之前。
但是,在检查 B2C 自定义策略中的可用声明转换列表时,似乎无法执行此操作:https://docs.microsoft.com/en-us/azure/active-directory-b2c/general-transformations,因为 CopyClaim 转换仅适用于字符串和整数。日期的可用转换列表是有限的。
我能想到的解决这个问题的唯一可能方法是调用 rest api,我在其中传入原始属性的值,然后 return 这个完全相同的值作为 api 的输出,然后将此值存储在另一个属性中。
这似乎太夸张了,只是将值从一个属性复制到另一个属性。有没有更简单的方法?
为什么不为此使用不同的逻辑。
创建两个属性:[Date]
extension_currentLoginTime
& [Date]extension_lastLoginTime
.当用户注册或首次登录时,使用
GenerateDateTime
声明转换并将currentTime
声明写入extension_currentLoginTime
和extension_lastLoginTime
。Return
extension_lastLoginTime
入令牌当用户执行登录时,读取
extension_currentLoginTime
并将其保存到extension_lastLoginTime
以下代码段显示了如何将一项声明的内容写入任何属性。 这意味着,您无需先复制声明。
<PersistedClaims> <PersistedClaim ClaimTypeReferenceId="extension_currentLoginTime" PartnerClaimType="extension_lastLoginTime"/> </PersistedClaims>
使用
GenerateDateTime
声明转换并将currentTime
声明写入extension_currentLoginTime
。