Запрещена ошибка 403 при подключении сертификата клиента - PullRequest
0 голосов
/ 03 ноября 2011

Я потребляю некоторые услуги, и поставщик услуг, выдавший сертификат, выдал сертификат.

Итак, я установил сертификат на LocalMachine , и с помощью следующего кода я прикрепляю сертификат к веб-запросу, который я отправляю, чтобы получить ответ от веб-службы.

X509Certificate cert = null;
string ResponseXml = string.Empty;

// Represents an X.509 store, which is a physical store
// where certificates are persisted and managed 
X509Store certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);

certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection results =
    certStore.Certificates.Find(X509FindType.FindBySubjectDistinguishedName,
                                Constants.CertificateName, false);
certStore.Close();

if (results != null && results.Count > 0)
    cert = results[0];
else
{
    ErrorMessage = "Certificate not found";
    return ErrorMessage;
}
webClient.TransportSettings.ClientCertificates.Add(cert);

Это прекрасно работает, когда я запускаю код с ASP.net Cassini (сервер разработки ASP.NET).

Но когда я размещаю этот код в IIS 7.0 , он выдает запрещено 403 Ошибка в качестве ответа.

Пожалуйста, предложите.

1 Ответ

1 голос
/ 01 мая 2012

Возможно, вам стоит попробовать это:

winhttpcertcfg -g -c LOCAL_MACHINE \ MY -s (MyCertificate) -a ASPNET

Как выясняется, пользователь, устанавливающий сертификат, автоматически предоставив доступ к закрытому ключу, я полагаю, в вашем случае это был бы вы, поэтому он работает в среде разработчика Когда появляется веб-интерфейс, вы уже не пользователь, а ASPNET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...