2

証明書ファイルを Windows モバイル 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 ファイルを開くと、メッセージなしで追加されます。

私に何ができる?

よろしくお願いします

4

2 に答える 2

1

これは、私がこの名前空間で経験したことでもあります。Small Device Framework で素晴らしい仕事をしても、これは私の迅速で安価な解決策です ;)

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

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

于 2012-04-24T07:30:03.693 に答える
0

私の経験では、Compact FrameworkのX509Store(実際には名前空間全体)は完全に役に立たないです。結局、証明書と秘密鍵の両方をインポートするためのAPIのセット全体を実装することになりました。私はその作業を最新のSDFに入れましたが、IIRCの誰かがそのコードにバグを見つけたので、それを内部で修正しましたが、その修正が公に広まったかどうかは思い出せません。

于 2012-04-20T20:19:34.550 に答える