Ответ 1
В VB.Net вам нужно написать
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
Я ищу способ проверки (или обхода проверки) самоподписанных сертификатов SSL с помощью VB.Net. Я нашел код для этого в С# и попытался преобразовать его в код VB, но мне не повезло.
Вот код С#.
Вот что я пробовал:
Imports System
Imports System.Net
Imports System.Security.Cryptography.X509Certificates
Public Class clsSSL
Public Function AcceptAllCertifications(ByVal sender As Object, ByVal certification As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslPolicyErrors As System.Net.Security.SslPolicyErrors) As Boolean
Return True
End Function
End Class
Затем перед WebRquest у меня есть эта строка кода, которая дает мне ошибку.
ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications)
Сообщение об ошибке:
Delegate 'System.Net.Security.RemoteCertificateValidationCallback' requires an 'AddressOf' expression or lambda expression as the only argument to its constructor.
В VB.Net вам нужно написать
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
Я не уверен, но это должно работать:
ServicePointManager.ServerCertificateValidationCallback = _
New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)
В VB.Net,
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
решает проблему менее безопасных приложений.