C# 使用CF 3.5添加根证书
将我的证书文件添加到windows mobile x509存储时出现问题。 我使用以下测试程序: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
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);