2014-06-19 40 views
0

我正在測試這個例子:http://msdn.microsoft.com/en-us/library/ms148731(v=vs.110).aspx它工作得很好。用於簽署數據的強制引腳(SignedXml)?

即時通訊使用從智能卡加載到證書存儲區(MY)的證書。

問題是這段代碼永遠不會要求PIN碼?我如何強制進行密碼驗證?

編輯:也嘗試過與此代碼和它的工作原理就像用第一種:http://ianreddy.wordpress.com/2011/02/14/sign-data-using-certificates-in-c/(無PIN碼的需求)

回答

1

的PIN通常由CSP提供者提出請求,即開發模塊由硬件供應商提供,並將硬件證書映射到Windows證書存儲。該模塊可能會緩存進程的PIN碼,或者您尚未設置硬件的USER引腳(僅設置「管理員」引腳)。

+0

我有一個名爲NETID的軟件,與硬件通信(讀卡器)你是否暗示它是防止PIN碼的軟件?當使用身份驗證證書通過WCF進行通信時,NETID將提供一個PIN碼對話框。這在使用WCF頻道時首先完成。我在簽名時使用不同的證書,並且只在客戶端完成(如您在代碼中所見)。 – Banshee

+0

@Banshee如果我理解你是正確的,你在讀卡器中有兩個證書,並在第一次訪問時提示你輸入PIN碼。我猜想驅動程序會緩存這個PIN碼,以便進行相同進程的後續訪問。檢查驅動程序的設置(許多供應商提供UI應用程序來配置驅動程序) - 也許您可以關閉PIN緩存。 –

+0

這是正確的,我有幾個證書可以從卡上覆制到證書存儲區。我的印象是,不同的證書也意味着不同的針。我知道NETID(即copie和需求pin代碼)也有pin緩存。我會檢查兩個證書上的PIN碼是否相同,但我不這麼認爲(幾乎可以確定隨ID卡附帶的2個PIN碼(一個用於身份驗證,一個用於簽名))。 – Banshee