TokenValidationParameters не имеет IssuerSigningToken, SigningKeyIdentifier отсутствует в JwtSecurityToken.Header в ядре asp.net 2.1 - PullRequest
0 голосов
/ 12 сентября 2018

Я перевожу .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

...