C# X509证书和.NET Compact Framework 3.5
我正在尝试实现通过客户端证书进行身份验证的HTTP通信。在“普通”(即非Compact).NET Framework)上发送HTTP请求时,非常简单:C# X509证书和.NET Compact Framework 3.5,c#,http,passwords,x509certificate,.net-cf-3.5,C#,Http,Passwords,X509certificate,.net Cf 3.5,我正在尝试实现通过客户端证书进行身份验证的HTTP通信。在“普通”(即非Compact).NET Framework)上发送HTTP请求时,非常简单: HttpWebRequest request = ...; string certificatePath = ...; string certificatePassword = ...; request.ClientCertificates.Add( new X509Certificate(certificatePath, certif
HttpWebRequest request = ...;
string certificatePath = ...;
string certificatePassword = ...;
request.ClientCertificates.Add(
new X509Certificate(certificatePath, certificatePassword));
然而,在CompactFramework3.5上,
X509Certificate
只有一个构造函数,它只接受字节数组而不接受其他内容。我想我应该读取一个证书文件并将其内容传递到该字节数组中,但是密码呢?我应该如何在Compact Framework上指定它?我没有找到任何方法来使用X509证书和密码
最后,我决定使用X509Store
并从那里获取证书。这将使部署比最初预期的要困难一些,但至少是可行的:)我迟到了两年,但我在自己的研究中偶然发现了这个问题
如果仔细查看文档的示例代码,您会发现在创建X509Certificate
类的另一个实例之前,必须先打开PFX文件,然后将其导出
我对此的理解如下:完整的.NET Framework API(即,在桌面上)将类的构造函数的密码参数作为重载。因此,使用完整框架,您可以使用导出方法导出证书的原始数据(即,没有安全密码),然后将生成的字节数组存储到文件中。然后,将该文件传输到移动设备,将该文件读入字节数组,并将其传递给Compact Framework上的X509Certificate
构造函数
当然,这是解决问题的“原始”方式。然后必须注意以某种方式保护正在传输的数据
进一步阅读时,以这种方式导出PFX文件不包括私钥。我假设密码将包含在字节数组中。文件上怎么说?下面应该回答你的问题,如果没有,就做一些研究。资料来源:@Ramhound是的,我也这么认为,但我不知道怎么做。当然,我已经浏览了文档并在谷歌上搜索了一下,但没有结果。这就是为什么我要问这个问题:)