簡體   English   中英

從X509Store獲取X509證書時提示用戶輸入密碼?

[英]Prompt user for password when grabbing X509Certificate from X509Store?

我有一個C#表單(在客戶端計算機上運行),該表單從商店中收集了所有用戶X509證書,並將它們呈現給用戶,以便他們可以選擇要使用的X509證書。 然后,我將證書傳遞給Web服務以進行一些工作。 這一切都很棒! 問題是,永遠不會提示用戶輸入X509證書密碼嗎? 從商店獲得X509Certificate后,我找不到“檢查密碼”的方法。 我還考慮過使用X509Certificate構造函數,該構造函數需要路徑和密碼,但是我沒有看到一種方法來從我從商店中獲取的X509Certificate中獲取文件路徑和名稱? 僅從商店中獲取證書而不要求輸入用戶密碼是否安全?

這是我從商店搶購的方式:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
for (int i = 0; i < store.Certificates.Count; i++) 
{
    X509Certificate c = store.Certificates[i];
    ...//add to GUI for user to pick here....
}

感謝您的幫助,史蒂夫

如果您選擇使用來自加密設備(例如eToken或SmartCard)的證書,系統將自動提示您輸入密碼(設備的密碼,而不是證書)。 在其他情況下,我認為您不應該關心它。 在Windows中,您無需任何密碼即可輕松訪問本地存儲,因此為什么要在應用程序中對其進行密碼保護。

這取決於證書的私鑰是否受密碼保護。 如果您從商店中訪問了此類證書,則窗口應提示您輸入該證書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM