如何在C ++中使用.net自动接受无效的SSL连接证书?

时间:2011-03-08 02:35:39

标签: .net c++ ssl

我正在使用VC 2008并使用.net代码。我做的HttpWebRequest客户端永远不能连接到使用不受信任的证书的服务器(我制作了该证书,因此它是不可信的)。错误是“TrustFailure”。

在C#中,我们可以做到

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

但是如何将其转换为C ++语法?

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

非常感谢!

2 个答案:

答案 0 :(得分:2)

我在我的类中定义了一个委托方法,并在构造函数中注册了它 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 :(得分:1)

我知道这可能不是您正在寻找的答案,但是您不能编写处理此问题的c#方法并且只是从您的C ++代码中调用它吗?