我正在尝试查找证书存储在我的本地计算机上的位置,然后是我们的开发服务器。我可以去运行 -> MMC -> 文件 -> 添加/删除管理单元并选择证书和当前用户,然后查看我的个人证书。但是,我正在尝试将此代码用于 HttpWebRequest,但我找不到 url。
string certPath = @"e:\mycertificate.cer"; //This Value
X509Certificate myCert = X509Certificate.CreateFromCertFile(certPath);
request.ClientCertificates.Add(myCert);
在另一个区域,我们设置了一个代理并这样做。
proxy.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, CertificateName);
所以显然有一点不同的实现,我不确定在哪里/如何找到第一个例子的位置。
对我有用的解决方案
public WebRequest GetWebRequest(string address)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
X509Certificate myCert = null;
X509Store store = new X509Store("My");
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 mCert in store.Certificates)
{
if (mCert.FriendlyName.Contains("certname"))
{
myCert = mCert;
}
}
if (myCert != null) { request.ClientCertificates.Add(myCert); }
return request;
}