VB .net Принять самоподписанный сертификат SSL - PullRequest
19 голосов
/ 14 мая 2011

Я ищу способ проверки (или обхода проверки) самозаверяющих 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

Затем перед Web-запросом у меня есть эта строка кода, которая выдает мне ошибку.

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.

Ответы [ 4 ]

28 голосов
/ 14 мая 2011

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

ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
4 голосов
/ 06 марта 2018

One-вкладыш:

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

Кредиты Робби Тендин

1 голос
/ 14 мая 2011

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

ServicePointManager.ServerCertificateValidationCallback = _
      New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)

http://msdn.microsoft.com/de-de/library/system.net.security.remotecertificatevalidationcallback%28VS.90%29.aspx

0 голосов
/ 07 июля 2016

В VB.Net

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...