Я перевожу .Net Framework 4.5.1 Проект Asp.Net MVC на Asp.Net Core 2.1 . В версии фреймворка System.IdentityModel
версия 4.0 использовалась для обработки токенов JWT. В версии asp.net core 2.1 System.IdentityModel доступен как System.IdentityModel.Tokens.JWT
пакет nuget, где некоторые классы перемещены в Microsoft.IdentityModel.Tokens
. Я использую TokenValidationParameters
, для которого требуется IssuerSigningToken
свойство. Это свойство больше не доступно в .Net core 2.1. Также SigningKeyIdentifier
отсутствует в JwtSecurityToken.Header
Это необходимо для проверки токенов. Я не смог найти альтернативу этим отсутствующим свойствам в ядре Asp.Net 2.1.
string kid = jwt.Header.SigningKeyIdentifier[0].Id;
var parameters = new TokenValidationParameters
{
ValidAudience = model.Id,
ValidIssuer = model.Issuer,
IssuerSigningToken = new RsaSecurityToken(rsaPublicKey, publicKey.kid),
IssuerSigningKeyResolver = (token, securityToken, keyIdentifier, validationParameters) => new RsaSecurityKey(rsaPublicKey)
};
Edit:
Альтернатива для JwtSecurityToken.Header.SigningKeyIdentifier
в ядре asp.net 2.1 - JwtSecurityToken.Header.Kid
. Ищете альтернативу для другой недвижимости, IssuerSigningToken