System.IdentityModel.Tokens.Jwt版本差异

时间:2020-04-22 11:10:46

标签: c# json .net-core jwt

我正在使用System.IdentityModel.Tokens.Jwt 5.6.0。目标框架是.NET Core 3.1。通过使用属性[JsonProperty],我可以控制序列化命名。 但是在更新到6.5.0版后,此功能不再起作用。 如何控制System.IdentityModel.Tokens.Jwt 6.5.0中的命名?

这是我的数据结构:

public class Data
{
    [JsonProperty("pin-number")] //for 5.6.0
    //[JsonPropertyName("pin-number")] //for 6.5.0
    public string Pin { get; set; }
}

将此结构添加到JWT令牌时,我将其添加为:

        var data = new Data
        {
            Pin = "1234"
        };
        payload.Add("data", data);
        var secToken = new JwtSecurityToken(header, payload);
        var handler = new JwtSecurityTokenHandler();
        string jwtToken = handler.WriteToken(secToken);

我得到一个令牌字符串。解码后,我得到以下结构: { “ pin-number”:“ 1234” } 这就是我想要的。

更新到6.5.0版后,它不再起作用。我已经将属性属性更新为[JsonPropertyName],但是将其忽略,结果如下所示: { “ Pin”:“ 1234” }

0 个答案:

没有答案