我在一个 IIS6/ASP.NET 网站上工作,该网站必须以智能卡(特别是通用访问卡)的形式“要求客户端证书”。我需要创建一些服务来访问计时器上的各种 URL,以执行更新搜索索引、预热 Sharepoint 页面和其他任务等操作。
鉴于除非您拥有智能卡上的证书,否则该站点不允许访问,如何做到这一点?我试图加载证书(.cer)并像这样加载它:
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("https://.../someURL.html");
const string certFilename = @"my.cer";
var cert = X509Certificate2.CreateFromCertFile(certFilename);
cert.Import(certFilename, "my pin", X509KeyStorageFlags.Exportable);
request.ClientCertificates.Add(cert);
HttpWebResponse response = (HttpWebResponse)
request.GetResponse();
但我得到了 403 Forbidden。