Azure B2C-无法阅读“;日期“;来自策略中JWT客户端断言令牌的声明

Azure B2C-无法阅读“;日期“;来自策略中JWT客户端断言令牌的声明,azure,azure-active-directory,azure-ad-b2c,Azure,Azure Active Directory,Azure Ad B2c,我无法从JWT客户端断言令牌中读取日期声明,然后通过转换方法“ConvertDateToDateTimeClaime”将其转换为“datetime”声明。我在索赔中尝试了低于日期的格式,但都不起作用。当我在B2C策略中设置日期声明的默认值时,它可以作为例外 JWT令牌: { “createdDate1”:“2019-05-26”, “createdDate2”:“2019-05-26T00:00:00”, “createdDate3”:“2019-05-26T00:00:00Z”, “验证邮件”

我无法从JWT客户端断言令牌中读取日期声明,然后通过转换方法“ConvertDateToDateTimeClaime”将其转换为“datetime”声明。我在索赔中尝试了低于日期的格式,但都不起作用。当我在B2C策略中设置日期声明的默认值时,它可以作为例外

JWT令牌: { “createdDate1”:“2019-05-26”, “createdDate2”:“2019-05-26T00:00:00”, “createdDate3”:“2019-05-26T00:00:00Z”, “验证邮件”:“XXXXXXXXXXXXX”, “nbf”:156005928, “经验”:1560006228, “iss”:“XXXXXXXXXXXXXXXXX”, “澳元”:“XXXXXXXXXXXXXXXXXX” }

错误:id为“createdDate”的索赔的数据类型“String”与策略中指定的id为“createdDate”的索赔类型的数据类型“Date”不匹配


需要帮助。

试图在id\u token\u提示参数中从JWT读取日期时间声明时出现错误。这周修好了。我可以想象,日期索赔也是如此

我创建了一个具有以下声明的JWT:

DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
new System.Security.Claims.Claim("LinkExpirationDateTime", ((long)(DateTime.UtcNow.AddMinutes(_appSettings.LinkExpiresAfterMinutes) - unixEpoch).TotalSeconds).ToString(), System.Security.Claims.ClaimValueTypes.DateTime, issuer)
您可以像上的一些示例中所示那样阅读它(“例如,电子邮件发送帐户赎回链接”)。索赔类型为:

<ClaimType Id="LinkExpirationDateTime">
    <DisplayName>LinkExpirationDateTime</DisplayName>
    <DataType>dateTime</DataType>
</ClaimType>

LinkExpirationDateTime
日期时间

试图在id\u token\u hint参数中从JWT读取日期时间声明时出现错误。这周修好了。我可以想象,日期索赔也是如此

我创建了一个具有以下声明的JWT:

DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
new System.Security.Claims.Claim("LinkExpirationDateTime", ((long)(DateTime.UtcNow.AddMinutes(_appSettings.LinkExpiresAfterMinutes) - unixEpoch).TotalSeconds).ToString(), System.Security.Claims.ClaimValueTypes.DateTime, issuer)
您可以像上的一些示例中所示那样阅读它(“例如,电子邮件发送帐户赎回链接”)。索赔类型为:

<ClaimType Id="LinkExpirationDateTime">
    <DisplayName>LinkExpirationDateTime</DisplayName>
    <DataType>dateTime</DataType>
</ClaimType>

LinkExpirationDateTime
日期时间

Hi@Jeeva。如果将日期声明设置为a,即从UTC 1970-01-01T00:00:00Z到创建时间UTC的秒数,如
exp
claim?@ChrisPadgett Hi,我尝试从idTokenHint参数中的JWT读取声明。也不管用。尚未找到正确读取日期时间的方法。嗨@Jeeva。如果将日期声明设置为a,即从UTC 1970-01-01T00:00:00Z到创建时间UTC的秒数,如
exp
claim?@ChrisPadgett Hi,我尝试从idTokenHint参数中的JWT读取声明。也不管用。尚未找到正确读取日期时间的方法。