2014-12-29 24 views
4

我想使用java中的密鑰存儲區訪問Windows用戶證書存儲區(「Windows-MY」)中的證書。 這裏是我使用的代碼:如何在訪問Windows時避免智能卡選擇彈出 ​​- 我使用Java

KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI"); 
    ks.load(null, null); 

不幸的是,在執行這個代碼從窗戶打開一個彈出窗口,詢問用戶選擇智能卡。

在此彈出窗口中單擊取消(多次)後,密鑰庫已正確構建並且可以訪問證書。

禁用Windows服務下的智能卡服務有幫助,但之後智能卡不能再使用(我們在另一用例中使用智能卡)。 如何在沒有此彈出窗口的情況下訪問Windows商店?

回答

3

在我的情況,實際情況是,智能卡軟件(或我安裝了一些智能卡中間件,我不知道)寫了註冊表項:more info here

註冊表路徑:HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\加密\默認\提供商(在Windows XP和7,32 64位,在Win8中未測試)

offending entry

刪除此註冊表項,解決了我的彈出窗口的問題。只是爲了小心,在刪除它之前先導出條目,如果出現問題,您可以恢復它。在找到違規之前,我必須刪除並恢復幾個條目。