証明書がローカルマシンのどこに保存されているか、そして開発サーバーのどこに保存されているかを見つけようとしています。[実行]->[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;
}