Я использую IdentityModel Extensions for .NET версии 4 для создания JWT фишку с симметричным ключом и SHA256, как показано ниже, и она прекрасно работает:Как создать JWT токен с IdentityModel расширений для .NET 5
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),
TokenIssuerName = Issuer,
AppliesToAddress = Audience,
Lifetime = new Lifetime(now, expirationTime),
SigningCredentials = new SigningCredentials(
new InMemorySymmetricSecurityKey(symmetricKey),
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
"http://www.w3.org/2001/04/xmlenc#sha256"),
};
var securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(securitytoken);
Но когда Я пытался обновить до IdentityModel расширений для .NET 5, как показано ниже код:
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),
Issuer = Issuer,
Audience = Audience,
Expires = expirationTime,
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(symmetricKey), "SHA256")
};
var securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(stoken);
я получил исключение:
IDX10634: Невозможно создать SignatureProvider.
SignatureAlgorithm: «SHA256», SecurityKey: «Microsoft.IdentityModel.Tokens.SymmetricSecurityKey» не поддерживается.
Что случилось с новым кодом с помощью версии 5.
Awesome! Спасибо за Ваш ответ –