2011-03-08 38 views
3

我正在使用VC 2008並使用.net代碼。我所做的HttpWebRequest客戶端永遠不能連接到使用不可信證書的服務器(我製作了該證書,因此它不受信任)。錯誤是「TrustFailure」。如何在C++中使用.net自動接受SSL連接的無效證書?

在C#中,我們可以做

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

但如何將其轉換成C++的語法?

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

非常感謝!

回答

1

我知道這可能不是你正在尋找的答案,但你不能編寫處理這個問題的C#方法,只是從你的C++代碼中調用它?

2

我在類中定義的委託方法,並在構造函數中註冊它 系統::網:: 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); 
}