我在本地計算機商店中安裝了x509。我如何閱讀C#? 我需要使用獲得的私鑰這樣如何從商店中讀取私鑰
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
我在本地計算機商店中安裝了x509。我如何閱讀C#? 我需要使用獲得的私鑰這樣如何從商店中讀取私鑰
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
這將讓你從「我」(個人)庫中的證書。
var store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Single(c => c.Thumbprint == "Whatever-Your-Thumbprint-Is");
store.Close();
此時您將擁有一個X509Certificate2,您可以從中訪問PrivateKey屬性。
public void AddCertificate()
{
if (this.ClientCertificates == null)
{
this.ClientCertificates = new X509CertificateCollection();
}
X509Certificate cert = new X509Certificate(path, pass, X509KeyStorageFlags.MachineKeySet);
this.ClientCertificates.Add(cert);
}
是的我只需要知道如何從本地商店檢索證書。目前我有C驅動器上的證書並從那裏讀取 – JohnM
@JohnM您需要某種方法來識別您想要的證書。證書存儲區可以包含許多證書。通常使用指紋或X500 DN。拇指印是優選的,因爲它不太可能產生重複。此時,您可以在上面的示例中的'certificates'變量上使用'Find'來查找您的確切證書。 – vcsjones
他的評論早於我對答案的編輯之前,順便說一句 - 可能對不同的上下文有不同的解讀。不過,如果您一直在尋找與商店完全相同的證書 - 拇指指紋。 – Yushatak