http://www.niso.org/apps/group_public/download.php/14003/SP_Jones_JSON_isqv26no3.pdf

дал JwtToken, настроив полезную нагрузку, как показано ниже

var payload = new JwtPayload
        {
            {"aud", "wellmark.com" },
            {"iss", "wellmark" },
            {"iat", DateTime.Now.Ticks },
            {"exp", DateTime.Now.AddDays(90).Ticks },
        };

Причина, по которой мне пришлось использовать тики, заключается в том, что это единственный способ получить целочисленное значение для выпущенных в момент истечения срока действия. Я согласен, что тики на самом деле длинные, а не целые, но это был единственный способ.

Теперь, когда я возвращаюсь для проверки токена, я делаю следующее

var tokenValidationParams = new TokenValidationParameters
            {
                IssuerSigningKey = new X509SecurityKey(jwtCert),
                ValidAudience = "masked",
                ValidIssuer = "masked",
                IssuerSigningKeyResolver = (string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, TokenValidationParameters validationParameters) => new List<X509SecurityKey> { new X509SecurityKey(jwtCert) }
            };

            tokenHandler.ValidateToken(id, tokenValidationParams
                   , out validatedToken);

Однако неверное высказывание

Проверка продолжительности жизни не удалась. Токену не хватает времени истечения. Tokentype: 'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'.

Это, скорее всего, потому, что метод проверки пытается преобразовать long в int, и потому что он не может преобразовать его, он просто возвращает ноль, как указано в показанной документацииВот.

Кто-нибудь имел успех с этим механизмом. Обратите внимание, что я использую сертификат X509 для подписи моего Jwt.

Narasimham

Ответы на вопрос(2)

Ваш ответ на вопрос