使用CF 3.5添加根证书

时间:2012-04-20 15:01:41

标签: c# compact-framework x509certificate

我将我的证书文件添加到windows mobile x509存储空间时出现问题。 我使用以下测试程序:

byte[] certifictateData = FileToByteArray(appPath + "cert.cer");
X509Certificate certificate = new X509Certificate(certifictateData);

X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
int i = store.Certificates.Add(certificate);
store.Close();

在设备上安装了28个根证书。添加我之后我收到29作为值。 但是当我尝试打开store.Certificates [28]时,会出现OutOfRangeException 即使关闭后,证书存储中也没有条目。

当我在移动浏览器中打开cert.cer文件时,它是在没有任何消息的情况下添加的。

我该怎么办?

祝你好运

2 个答案:

答案 0 :(得分:1)

这也是我对此命名空间的体验。 使用小型设备框架,您做得更好。 这是我快速而便宜的解决方案;)

ProcessStartInfo psi = new ProcessStartInfo(appPath + "cert.cer", "");
psi.UseShellExecute = true;
Process.Start(psi);

唯一的缺点是会弹出一条消息并显示导入结果。

答案 1 :(得分:0)

我的经验是Compact Framework is completely useless中的X509Store(实际上是整个命名空间)。我最终实现了用于导入证书和私钥的整套API。我把这项工作放到了the latest SDF,虽然IIRC有人在那段代码中发现了一个错误,我在内部修复了这个错误,但我不记得那个修补程序是否公开传播。