Я работаю на веб-сайте IIS6 / ASP.NET, который должен «требовать сертификаты клиента» в виде смарт-карты (в частности, Common Access Card ). Мне нужно создать несколько служб для доступа к различным 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 Запрещено.