Я пытаюсь подписать и закодировать мой JWt с помощью этого фрагмента:
var claims = new Claim[] { new SomeClaimes() };
var scKey = Encoding.UTF8.GetBytes("SOME KEY");
var ecKey = Encoding.UTF8.GetBytes("SOME OTHER KEY");
var tokenDescriptor = new SecurityTokenDescriptor {
Subject = new ClaimsIdentity(claims),
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(
scKey),
SecurityAlgorithms.HmacSha512),
EncryptingCredentials = new EncryptingCredentials(
new SymmetricSecurityKey(
ecKey),
// I tryied all possible combination of algorithms here:
SecurityAlgorithms.XXXX,
SecurityAlgorithms.YYYY),
Issuer = "My Jwt Issuer",
Audience = "My Jwt Audience",
IssuedAt = DateTime.UtcNow,
Expires = DateTime.Now.AddDays(7),
};
var tokenHandler = new JwtSecurityTokenHandler();
var token = tokenHandler.CreateJwtSecurityToken(tokenDescriptor);
var jwt = tokenHandler.WriteToken(token);
Но когда я запускаю код, я получаю ошибку:
Шифрование не удалось.Нет поддержки для: Алгоритм: '{0}', SecurityKey: '{1}'.
Какие {0}
и {1}
представляют собой любую комбинацию XXXX
и YYYY
вКод выше (да, я написал фрагмент отражения и перепробовал все возможные комбинации).Какие поддерживаются алгоритмы кодирования (и декодирования) JWT со знаком?