Как автоматически принять неверный сертификат SSL-соединения, используя .net в C ++? - PullRequest
3 голосов
/ 08 марта 2011

Я использую VC 2008 и использую коды .net. Созданный мной клиент HttpWebRequest никогда не сможет подключиться к серверу, который использует ненадежный сертификат (я создал этот сертификат, поэтому он не является доверенным). Ошибка «TrustFailure».

В C # мы можем сделать

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

Но как преобразовать это в синтаксис C ++?

ServicePointManager::ServerCertificateValidationCallback = delegate { return true; };
// does not work

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Я определил метод делегата в своем классе и зарегистрировал его в конструкторе для System :: Net :: ServicePointManager :: ServerCertificateValidationCallback

bool CMyClass::AcceptingCertificate(System::Object^ rObjectSender, X509Certificate^ rX509Certificate, X509Chain^ rX509Chain , SslPolicyErrors rErrors)
{
  return true;
}

CMyClass::CMyClass(void)
{
  System::Net::ServicePointManager::ServerCertificateValidationCallback = gcnew RemoteCertificateValidationCallback(&CMyClass::AcceptingCertificate);
}
1 голос
/ 08 марта 2011

Я знаю, что это, вероятно, не тот ответ, который вы ищете, но вы не можете написать метод c #, который обрабатывает это, и просто вызвать его из своего кода C ++?

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