2012-06-15 45 views
0

我正在使用此代碼生成本地證書。如何創建個人證書

X509Certificate2 certificate = new X509Certificate2(cerFilePath,password); 
     X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 

     store.Open(OpenFlags.ReadWrite); 
     store.Add(certificate); 
     store.Close(); 

輸出顯示了它的創建,但它不是在certmanager的個人標籤,但如果我使用店名其他比我(例如:信任的發佈)在同一程序,證書STORENAME下在證書管理器中可用。

但我需要個人使用的證書。

出了什麼問題?

+0

這是一個Windows應用程序,它與哪個用戶運行?在當前用戶下?所以在執行環境中,誰是「我」,分別是誰。哪個商店是「StoreName.My」? – Tisho

+0

我在管理模式下運行visual studio,是的,它是VC中的c#項目,我需要通過以.pfx文件作爲輸入來創建證書。 – RATHI

+0

這一切聽起來像是當前提供的信息的模擬問題。你能打印出關於當前用戶的一些調試信息(Thread.CurrentThread.CurrentPrincipal),只是爲了確保應用程序真正作爲你自己的用戶執行,而不是模擬,或者打印出Store.My的當前內容代碼,看看這是否真的是預期的商店放置證書。 – Tisho

回答

0

如果使用「LocalMachine」上下文,則必須具有「提升權限」(如果需要,以管理員身份運行應用程序)。

「LocalMachine」和「CurrentUser」都有一個名爲「Personal」(My)的商店!
您可以使用「certlm.msc」瀏覽「LocalMachine」商店,並使用「certmgr.msc」瀏覽「CurrentUser」商店。