[英]How to write this line in C++/CLI?
我正在使用Visual C ++調用Web服務。 由於出現此錯誤,我需要繞過無效的SSL證書-
請求失敗。 基礎連接已關閉:無法為SSL / TLS安全通道建立信任關系。
在C#中編寫相同的內容時,我使用了這一行-
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
它為我工作。
如何在Visual C ++中實現同一目標? 如何在Visual C ++中編寫同一行?
您需要顯式創建回調對象,並將其分配給相應的屬性。
using namespace System;
using namespace System::Net;
using namespace System::Net::Security;
using namespace System::Security::Cryptography::X509Certificates;
static bool ValidateServerCertificate(
Object^ sender,
X509Certificate^ certificate,
X509Chain^ chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
}
int main(array<System::String ^> ^args)
{
// create callback object, pointing to your function
System::Net::Security::RemoteCertificateValidationCallback^ clb = gcnew RemoteCertificateValidationCallback(ValidateServerCertificate);
// assign it to the property
System::Net::ServicePointManager::ServerCertificateValidationCallback = clb;
return 0;
}
VS 2010中的C ++ / CLI不支持lambda,因此您必須將委托編寫為普通函數:
using namespace System::Net;
using namespace System::Net::Security;
using namespace System::Security::Cryptography::X509Certificates;
bool returnTrueCallback(
Object^ sender, X509Certificate^ certificate, X509Chain^ chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
}
...
ServicePointManager::ServerCertificateValidationCallback =
gcnew RemoteCertificateValidationCallback(returnTrueCallback);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.