2012-10-05 52 views
1

我已經使用StoreName.CertificateAuthorityStoreLocation.LocalMachine作爲變量上機瞭解證書的retrival

private static X509Certificate2 GetSpecifiedCertificate(StoreName storeName, StoreLocation storeLocation) 
{ 
    X509Store store = new X509Store(storeName, storeLocation); 
    store.Open(OpenFlags.ReadOnly); 

    X509Certificate2Collection certs = store.Certificates; 


    if (certs.Count > 0) 
    { 
     Console.WriteLine(string.Format("found {0} certficates", certs.Count)); 

     for (int i = 0; i < certs.Count; i++) 
     { 
      X509Certificate2 cert = certs[i]; 
      Console.WriteLine(cert.Thumbprint); 
     } 
    } 
    else 
     Console.WriteLine("found no certficates at all"); 

    return null; 
} 

通過所有的證書是循環一個簡單的控制檯應用程序的服務器上,在我的Windows Server 2008 R2,我只拿到3個證書,即使有更多的安裝是

控制檯應用程序輸出: enter image description here

下安裝的證書店鋪位置 enter image description here

我該如何得到缺失的?

我特地婉檢索Apple Certificate一個簽署文件,但是不管我怎麼安裝的公證書,我無法從商店循環檢索......

難道我總是需要重新啓動機器?有沒有特別的竅門讓他們?

+0

第一次看起來好像你做的都是正確的,StoreName.CertificateAuthority應該會顯示你的屏幕截圖上可以看到的中間CA.您是否嘗試使用證書的名稱而不是thumprint?也許知道哪些失蹤會有所幫助。 – mbarthelemy

回答

1

你是怎麼打開證書窗口的?我認爲您正在查看您帳戶下的證書,而不是計算機帳戶。但是,代碼將從計算機帳戶查詢證書,該帳戶的安裝證書通常少於您的帳戶。

要打開證書窗口的計算機帳戶,

  1. 在命令提示執行MMC。
  2. 文件|添加/刪除管理單元。
  3. 添加證書。
  4. 選擇計算機帳戶。