3

ストアから証明書を見つけたいのですが、次のコードを使用して証明書を取得できませんでした。常に null を返します。

拇印で証明書を取得するコード

コードの何が問題になっていますか?

アップデート:

ストア オブジェクトを探索して証明書の拇印をコピーし、拇印の文字列と比較すると、false が返されます。VS2010 IDE での文字列の解釈の問題またはコピー ペーストの問題は、以下の図で確認できると思います。このため、リストから証明書を無視する必要があります。以前にこの種の問題に直面した人はいますか?

ここに画像の説明を入力

4

2 に答える 2

3

その拇印を持つ証明書がないため、証明書コレクションは空です。小切手:

  • 証明書が現在のユーザーに存在すること

  • 証明書が個人用フォルダに保存されていること

試す:

  • mmc を使用して上記のことを確認する

  • 使用してX509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);

編集:

以下は有用なものを返しますか:

X509Certificate2Collection col = store.Certificates;

foreach (var currCert in col)
{
     var currThumbprint = currCert.Thumbprint;
     if (thumbprint.ToUpperInvariant() == currThumbprint)
     {
         x509Certificate2= currCert;
         break;
     }
}
于 2012-05-18T12:01:28.670 に答える
2

特に最初または最後に、拇印に目に見えない/長さゼロの文字がある場合があります。提供した拇印の長さを測ります ("35ED.." )。それは表示されるものよりも大きくなければなりません。

于 2013-03-04T10:21:56.040 に答える