我在問這個,因爲我很絕望,在任何地方我都找不到任何關於這個問題的帖子。Certificates store windows 10 C#
在我的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版本的魅力,從Windows XP到Windows 8.1。在Windows 10中,它在第一次嘗試時起作用。如果我再做一次,它會停滯不前。
我試圖實現一個60秒的「timout timer」:提供的代碼片段只是超時。
如果用戶從PC中取出包含證書的USB密鑰(或智能卡)並再次插入,則問題得以解決。
有沒有人有這種行爲的解決方案?我很絕望,升級到Windows 10的客戶對我很生氣,我不知道該怎麼做。
您的智能卡是否與Windows 10兼容? – Crypt32
當然,否則它不會第一次工作!我第一次使用該代碼時,我獲得了證書,選擇一個,然後用它來數字簽名文件或驗證所有者。沒問題。但是,第二次運行該代碼時,我只是一直等待。僅在Win10上。 – Fabio
這是不是發生在不同的智能卡?你使用什麼智能卡?這可能是智能卡中間件的一個缺陷。 – pepo