2012-04-20 8 views
1

私の証明書ファイルをWindows Mobile x509ストレージに追加する際に問題があります。 私は、次のテストプログラムを使用します。デバイス上でCFでのルート証明書の追加3.5

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

これは私がこの名前空間で経験したことです。 は決して少ないあなたが小さなデバイスフレームワークで素晴らしい仕事をして.. これは私の迅速かつ安価なソリューションです;)

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

唯一の欠点は、メッセージがポップアップし、インポート結果を示すことです。

+0

FWIW、ルート証明書の場合、私が行ったようにAPIを直接呼び出しても、そのポップアップが表示されます。 "My"ストアに追加することは完全に静かです。 – ctacke

+0

私のWindowsCEデバイスは.cerのファイル関連を持っていないようですので、OSはそれを実行できません。私はレジストリに追加する必要がある任意のアイデアは、これを何かに関連付けます。 – CathalMF

0

私の経験では、Compact Frameworkのis completely uselessでそのX509Store(実際には全体のネームスペース)です。私は、証明書と秘密鍵の両方をインポートするためのAPIのセット全体を実装しました。私はその仕事をthe latest SDFに入れましたが、内部で修正したIIRCの誰かがそのコードのバグを見つけましたが、その修正が公に伝播したかどうかは思い出せません。

関連する問題