我试图从base64string导入X509Certificate2并得到异常“指定的路径,文件名或两者都太长。完全限定的文件名必须少于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;
最佳答案
The overload you are using用于从文件路径加载证书。由于您的base64表示形式太长而无法成为路径,因此会引发您所获取的异常。
相反,您可以使用this overload method,它将原始数据作为字节数组接收。
var pfx = certficatestring;
var bytes = Encoding.UTF32.GetBytes(pfx);
X509Certificate2 x509 = new X509Certificate2();
x509.Import(bytes,password,X509KeyStorageFlags.Exportable);
return x509;
关于c# - X509Certificate2 Import PathTooLongException:指定的路径,文件名或两者都太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50731780/