我正在使用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” }