私は必死で、この問題について話している投稿がどこにも見つからなかったので、これを尋ねています。
私の WinForms C# アプリケーションでは、次のコードを使用して Windows 証明書を取得しています。
X509Certificate2Collection Certificates = new X509Certificate2Collection();
X509Store store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
//Filtering the list, showing only not-expired ones
Certificates = store.Certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
store.Close();
これは、Windows XP から Windows 8.1 まで、すべての Windows バージョンで魅力的に機能します。Windows 10 では、最初の試行で機能します。もう一度やると、待たされて動けなくなります。
私は 60 秒の「タイムアウト タイマー」を実装しようとしました: 提供されたコードはちょうどタイムアウトします。
ユーザーが証明書を含む USB キー (またはスマートカード) を PC から取り外し、再度挿入すると、問題は解決されます。
誰かがこの動作の解決策を持っていますか? Windows 10 にアップグレードする顧客は私に腹を立てており、どうすればよいかわかりません。