Проверка JWT не удаласьC#

Место общения программистов C#
Ответить
Anonymous
 Проверка JWT не удалась

Сообщение Anonymous »

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

Код: Выделить всё

var payload = new JwtPayload
{
{"aud", "wellmark.com" },
{"iss", "wellmark" },
{"iat", DateTime.Now.Ticks },
{"exp", DateTime.Now.AddDays(90).Ticks },
};
Причина, по которой мне пришлось использовать тики, заключается в том, что это единственный способ получить целочисленное значение для времени выдачи и срока действия. Я согласен, что для тиков требуется long, а не int, но это был единственный способ.
Теперь, когда я возвращаюсь к проверке токена, я делаю следующее:

Код: Выделить всё

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 { new X509SecurityKey(jwtCert) }
};

tokenHandler.ValidateToken(id, tokenValidationParams
, out validatedToken);
Однако это не соответствует

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

Скорее всего, это связано с тем, что метод проверки пытается преобразовать long в int, и поскольку он не может его преобразовать, он просто возвращает ноль, как указано в документации, показанной здесь.
Кто-нибудь добился успеха с этот механизм? Обратите внимание, что для подписи Jwt я использую сертификат X509.

Подробнее здесь: https://stackoverflow.com/questions/435 ... tion-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»