【问题标题】:Can't import ore create X509Certificate2 object from byte array无法从字节数组导入矿石创建 X509Certificate2 对象
【发布时间】:2022-07-17 02:38:56
【问题描述】:

所以我在尝试将.pfx 文件导入x509 对象时遇到了一个奇怪的问题。

出于某种原因,我不明白,尝试打开或生成新对象,以这种方式不起作用。

  cert = new X509Certificate2();
  cert.Import(byte []);
  cert = new X509Certificate2(byte []);

我得到的错误是:'X509Certificate is immutable on this platform. Use the equivalent constructor instead.'

我看到了这个问题:https://github.com/jitbit/AspNetSaml/issues/9

我可以让它工作的唯一方法是给出一个明确的路径到 .pfx 有效的路径。

然而,这不是我的意图。

有什么想法吗?

【问题讨论】:

    标签: x509certificate x509certificate2


    【解决方案1】:

    对你有用的是构造函数重载之一。

    使用另一个带有两个参数的 X509Certificate2 类的构造函数。第一个是字节数组,第二个是密码字符串。

     byte[] certData;
     var memorystream = new MemoryStream();
    
     MyMethodToPopluateMemoryStream(memorystream);
     certData = memorystream.ToArray();
    
     cert = new X509Certificate2(certData,"CERT_PASSWORD");
    

    这样可以避免不推荐使用的 Import 方法。 经过几个小时的努力,上面的代码对我来说效果很好。我已经在 .net6 上测试过这段代码。

    快乐编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多