你不提它,但在運行過程中的其他用戶?
除非您特別選擇計算機帳戶證書存儲區中,您將證書添加到您的個人證書存儲區(用戶帳戶)。這些在作爲另一個用戶運行時不可用。
爲了讓所有用戶可以使用的證書,將其添加到計算機證書存儲:
- 開始MMC.EXE
- 按CTRL + M(添加/刪除管理單元)
- 選擇證書,點擊添加
- 選擇計算機帳戶,單擊Finish
- 導入證書
您也可以選擇服務帳戶,並根據您的需要選擇需要訪問證書的服務。 MSDN上
This文章涵蓋了相同的步驟,是一個有點冗長。
編輯:
添加到機器存儲中的證書需要提升的權限。如果你沒有將它捆綁到MSI安裝程序中,我建議你編寫一個單獨的InstallCertificate.exe(控制檯或Windows應用程序)來執行安裝。
在Visual Studio:
創建一個新的控制檯/ Windows應用程序,並添加一個應用程序清單文件(添加項目/ Ctrl + Shift + A)。在剛剛添加的app.manifest文件,更改此行
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
這個
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
將此代碼放在Program.cs中(這推到生產環境之前添加一些日誌和錯誤處理!):
using System;
using System.Security.Cryptography.X509Certificates;
namespace InstallCertificate
{
class Program
{
static void Main(string[] args)
{
string cerFileName = args[0];
X509Certificate2 certificate = new X509Certificate2(cerFileName);
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();
}
}
}
運行該應用程序。您應該獲得UAC提示,並且證書應該安裝在您的計算機的根證書存儲區中。
你能告訴我們一些代碼嗎? –