Я использую 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"}