X509Certificate2 Import PathTooLongException: указанный путь, имя файла или оба являются слишком длинными - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь импортировать X509Certificate2 из base64string и получаю исключение "Указанный путь, имя файла или оба слишком длинные. Полное имя файла должно быть не более 260 символов, а имя каталога должно быть меньше248 символов ".Не могли бы вы помочь понять, что означает это исключение.

 var pfx = certficatestring;          

 var bytes = Encoding.UTF32.GetBytes(pfx);
 var certdata = Convert.ToBase64String(bytes);

 X509Certificate2 x509 = new X509Certificate2();
 x509.Import(certdata,password,X509KeyStorageFlags.Exportable);
 return x509;

1 Ответ

0 голосов
/ 07 июня 2018

Используемая вами перегрузка предназначена для загрузки сертификата из пути к файлу.Поскольку ваше представление base64 слишком длинное, чтобы быть путем, оно выдает исключение, которое вы получаете.

Вместо этого вы можете использовать этот метод перегрузки , который принимает необработанные данные какбайтовый массив.

var pfx = certficatestring;          

var bytes = Encoding.UTF32.GetBytes(pfx);

X509Certificate2 x509 = new X509Certificate2();
x509.Import(bytes,password,X509KeyStorageFlags.Exportable);
return x509;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...