我将我的证书文件添加到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文件时,它是在没有任何消息的情况下添加的。
我该怎么办?
祝你好运
答案 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有人在那段代码中发现了一个错误,我在内部修复了这个错误,但我不记得那个修补程序是否公开传播。