C# 使用CF 3.5添加根证书

C# 使用CF 3.5添加根证书,c#,compact-framework,x509certificate,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.Curr

将我的证书文件添加到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]时,有一个OutOfRange异常 即使在关闭之后,证书存储中也没有条目

当我在手机浏览器中打开cert.cer文件时,它会被添加而没有任何消息

我能做什么


最好的问候

我的经验是X509Store(实际上是整个名称空间)在紧凑的框架中。我最终实现了一整套用于导入证书和私钥的API。我将这项工作投入到了IIRC中,尽管有人在那段代码中发现了一个bug,我在内部修复了它,但我不记得该修复是否已公开传播。

这也是我在这个名称空间中遇到的问题。 您在小型设备框架方面做得非常出色。。 这是我的快捷且便宜的解决方案;)


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

FWIW,对于根证书,即使您像我一样直接调用API,您仍然会得到该弹出消息。但是,将其添加到“我的”存储中是完全静默的。我的WindowsCE设备似乎没有.cer的文件关联,因此操作系统无法执行它。你知道我需要在注册表中添加什么吗?把它和一些东西联系起来。
ProcessStartInfo psi = new ProcessStartInfo(appPath + "cert.cer", "");
psi.UseShellExecute = true;
Process.Start(psi);