[英]X509Certificate and .NET Compact Framework 3.5
我正在尝试实现通过客户端证书认证的HTTP通信。 在“普通”(即非紧凑型).NET Framework上发送HTTP请求时,它非常简单:
HttpWebRequest request = ...;
string certificatePath = ...;
string certificatePassword = ...;
request.ClientCertificates.Add(
new X509Certificate(certificatePath, certificatePassword));
但是,在Compact Framework 3.5上, X509Certificate
仅具有一个接受字节数组的构造函数,而别无其他。 我想我应该读取一个证书文件并将其内容传递到该字节数组中,但是密码呢? 我应该如何在Compact Framework上指定它?
我找不到任何使用X509Certificate
和密码的方法。
最后,我决定使用X509Store
并从那里获取证书。 这将使部署比最初预期的要困难一些,但至少是可行的:)
我迟了两年,但在自己的研究中偶然发现了这个问题。
如果仔细查看文档的示例代码,您会发现必须先打开PFX文件,然后将其导出,然后再创建X509Certificate
类的另一个实例。
我的理解方式如下:完整的.NET Framework API(即,在桌面上)采用类的构造函数的密码参数作为重载。 因此,使用完整框架,您可以使用Export方法导出证书的原始数据(即,没有安全密码),然后将结果字节数组存储到文件中。 之后,您将该文件传输到移动设备,将该文件读入字节数组,然后将其传递到Compact Framework上的X509Certificate
构造函数。
当然,这是解决问题的“原始”方法。 然后必须注意以某种方式保护正在传输的数据。
在进一步阅读时,以这种方式导出PFX文件不包括私钥。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.