Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# X509证书和.NET Compact Framework 3.5_C#_Http_Passwords_X509certificate_.net Cf 3.5 - Fatal编程技术网

C# X509证书和.NET Compact Framework 3.5

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

我正在尝试实现通过客户端证书进行身份验证的HTTP通信。在“普通”(即非Compact).NET Framework)上发送HTTP请求时,非常简单:

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是的,我也这么认为,但我不知道怎么做。当然,我已经浏览了文档并在谷歌上搜索了一下,但没有结果。这就是为什么我要问这个问题:)