VB .net Принять самоподписанный сертификат SSL

18

Я ищу способ проверки (или обхода проверки) самоподписанных сертификатов SSL с помощью VB .Net. Я нашел код для этого в C # и попытался преобразовать его в код VB, но мне не повезло.

Вот C #.

Вот что я пробовал:

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.
    
задан compcentral 13.05.2011 в 23:32
источник

4 ответа

26

В VB.Net вам нужно написать

ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
    
ответ дан SLaks 13.05.2011 в 23:36
источник
  • Yep .. Вот именно. Я подумал, что я пропустил что-то простое. Я видел это в сообщении об ошибке, и я клянусь, что попробовал, но, думаю, нет. Благодарю. –  compcentral 13.05.2011 в 23:43
1

Я не уверен, но это должно работать:

ServicePointManager.ServerCertificateValidationCallback = _
      New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)

Ссылка

    
ответ дан Tim Schmelter 13.05.2011 в 23:37
источник
  • Правильно. Благодарю. –  compcentral 13.05.2011 в 23:43
  • @ comppcentral: Уверены, что оба правильны? Кажется, они немного отличаются друг от друга. –  Tim Schmelter 14.05.2011 в 00:19
  • Мой синтаксис был введен VB.Net 2005 (например, C #) –  SLaks 14.05.2011 в 00:25
0

В VB.Net,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

решает проблему менее безопасных приложений.

    
ответ дан vidhya 07.07.2016 в 04:00
источник
0

Однострочник:

System.Net.ServicePointManager.ServerCertificateValidationCallback = _
  Function(se As Object, _
  cert As System.Security.Cryptography.X509Certificates.X509Certificate, _
  chain As System.Security.Cryptography.X509Certificates.X509Chain, _
  sslerror As System.Net.Security.SslPolicyErrors) True

Кредиты на Robby Tendean

    
ответ дан MrCalvin 06.03.2018 в 09:08
источник