某些 X509Certificate2 和 X509Certificate 构造函数已过时

从 .NET 9 开始,X509CertificateX509Certificate2 上接受内容为 byte[]ReadOnlySpan<byte>string 文件路径的构造函数已过时。 X509Certificate2Collection 上的 Import 方法也已过时。 在代码中调用这些方法会在编译时生成警告 SYSLIB0057

旧行为

开发人员可以使用受影响的 API,而不会收到过时警告。

新行为

受影响的 API 将收到 ID 为 SYSLIB0057 的过时编译警告。

引入的版本

.NET 9 预览版 7

中断性变更的类型

此项更改可能会影响源兼容性

更改原因

受影响的 API 支持加载多种格式的证书。 例如,new X509Certificate2(data) 从名为 databyte[] 加载证书。 data 可以是任何一种受支持的格式,包括 X.509、PKCS7 或 PKCS12/PFX。

虽然此方法易于使用,但当用户提供的数据以不同于预期的格式传递时,就会产生问题。 这可能会导致在只打算加载 X.509 内容的情况下加载 PKCS12。 或者,以不同的方式处理数据可能会产生互操作性问题。

有关解决方法,请参阅解决方法

受影响的 API

有关受影响的 API,请参阅 SYSLIB0057