Всем привет.
Есть следующий вопрос.
В системе есть пользователь user, под которым залогинена машина. В его хранилище сертификатов есть персональный сертификат MyCert.
На машине запущен IIS и в нём Asp.Net приложение. AppPool для сайта с приложение запущен от NetworkService.
Стоит задача сделать запрос на определённый ресурс, используя сертификат MyCert.
Сертификат ищу так:
static X509Certificate2 GetCertificate()
{
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection cers = store.Certificates.Find(X509FindType.FindBySubjectName, "MyCert", false);
return cers.Count == 0 ? null : cers[0];
}
И потом просто добавляю его в запросе http
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(requestUri);
myHttpWebRequest.ClientCertificates.Add(cert);
Из-под NetworkService сертификат не виден.