Używam IdentityModel Extensions for .NET wersji 4 do wygenerowania tokenu JWT z symetrycznego klucza i SHA256 jak poniżej i działa idealnie:Jak wygenerować JWT token z IdentityModel Extensions dla .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);
Ale kiedy próbowałem uaktualnić IdentityModel Extensions dla .NET 5 poniżej kodu:
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);
dostałem wyjątek:
IDX10634: Nie można utworzyć obiektu SignatureProvider.
Algorytm sygnatury: 'SHA256', SecurityKey: 'Microsoft.IdentityModel.Tokens.SymmetricSecurityKey' nie jest obsługiwany.
Co jest nie tak z nowym kodem użyciu wersji 5.
Awesome! Dzięki za odpowiedź –