Не удается отправить HttpWebRequest с сертификатом из SharePoint - PullRequest
2 голосов
/ 10 мая 2011

Я пытаюсь отправить HttpRequest из моего SharePoint 2007 WebPart в другой веб-сервис.Служба ожидает клиентский сертификат X509 для проверки подлинности.

Я написал простое консольное приложение, в котором нет проблем с отправкой запроса и проверкой подлинности с помощью моего сертификата:

byte[] certBytes = getBytes();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("<server_url>");
X509Certificate2 cert = new X509Certificate2(certBytes, "<password>", X509KeyStorageFlags.MachineKeySet);
request.ClientCertificates.Add(cert);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Но как только запускается тот же код из моей веб-части SharePoint, происходит сбой,это «Невозможно создать безопасное соединение SSL / TSL».

Примечание: Если я не использую флаг X509KeyStorageFlags.MachineKeySet, я получаю «Доступ запрещен» на SharePoint.Согласно http://social.msdn.microsoft.com/Forums/en/windowssecurity/thread/f1981374-5a25-45c7-aea8-aad859800ae7 флаг должен это исправить.

Веб-служба (на основе Apache) регистрирует следующую ошибку:

[error] Re-negotiation handshake failed: Not accepted by client!?

Любая идея, почему тот же код работает для моегоконсольное приложение, но не в SharePoint?

...