Получение System.FormatException: при чтении записей «n» и «e» из файла jwk, размещенного на сервере ⇐ C#
Получение System.FormatException: при чтении записей «n» и «e» из файла jwk, размещенного на сервере
Я пытаюсь проверить подпись JWT с помощью файла JWK, размещенного на сервере.
В моем проекте Jwk есть модель jwk, которая выглядит следующим образом:
публичный класс Jwk{ [JsonProperty("алг")] общественная строка Alg {get; набор; } [JsonProperty("e")] общественная строка E {получить; набор; } [JsonProperty("кти")] общественная строка Kty {get; набор; } [JsonProperty("n")] общественная строка N {получить; набор; } [JsonProperty("использовать")] публичная строка Use { get; набор; } } вот как я использую это в коде:
public TokenValidationParameters VerifyToken(Jwk jwk) { // Здесь я получаю исключение RSAParameters rsaParams = новые RSAParameters { Модуль = Convert.FromBase64String(jwk.N), Экспонента = Convert.FromBase64String(jwk.E), }; используя RSA rsa = RSA.Create(); rsa.ImportParameters(rsaParams); var validationParameters = новые параметры TokenValidationParameters { ValidateIssuer = правда, Валидатаудиенс = правда, ValidateLifetime = правда, ValidateIssuerSigningKey = true, IssuerSigningKey = новый RsaSecurityKey(rsa) }; вернуть параметры проверки; } Я получаю исключение:
System.FormatException: «Введенные данные не являются допустимой строкой Base-64, поскольку они содержат символ, отличный от Base 64, более двух символов заполнения или недопустимый символ среди символов заполнения».
Я пытаюсь проверить подпись JWT с помощью файла JWK, размещенного на сервере.
В моем проекте Jwk есть модель jwk, которая выглядит следующим образом:
публичный класс Jwk{ [JsonProperty("алг")] общественная строка Alg {get; набор; } [JsonProperty("e")] общественная строка E {получить; набор; } [JsonProperty("кти")] общественная строка Kty {get; набор; } [JsonProperty("n")] общественная строка N {получить; набор; } [JsonProperty("использовать")] публичная строка Use { get; набор; } } вот как я использую это в коде:
public TokenValidationParameters VerifyToken(Jwk jwk) { // Здесь я получаю исключение RSAParameters rsaParams = новые RSAParameters { Модуль = Convert.FromBase64String(jwk.N), Экспонента = Convert.FromBase64String(jwk.E), }; используя RSA rsa = RSA.Create(); rsa.ImportParameters(rsaParams); var validationParameters = новые параметры TokenValidationParameters { ValidateIssuer = правда, Валидатаудиенс = правда, ValidateLifetime = правда, ValidateIssuerSigningKey = true, IssuerSigningKey = новый RsaSecurityKey(rsa) }; вернуть параметры проверки; } Я получаю исключение:
System.FormatException: «Введенные данные не являются допустимой строкой Base-64, поскольку они содержат символ, отличный от Base 64, более двух символов заполнения или недопустимый символ среди символов заполнения».
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение