VB.net accepter le certificat SSL auto-signé

je cherche un moyen de valider (ou de contourner la validation pour) les certificats SSL auto-signés en utilisant VB .Net. J'ai trouvé du code pour faire ça en C# et j'ai essayé de le convertir en code VB, mais je n'ai pas de chance.

Ici code C#.

Voici ce que j'ai essayé:

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

Puis avant l'Webrequest j'ai cette ligne de code qui me donne une erreur.

ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications)

Le message d'erreur est:

Delegate 'System.Net.Security.RemoteCertificateValidationCallback' requires an 'AddressOf' expression or lambda expression as the only argument to its constructor.
19
demandé sur Community 2011-05-14 01:32:28

4 réponses

Dans VB.Net, vous avez besoin d'écrire

ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
28
répondu SLaks 2011-05-13 21:36:29

je ne suis pas sûr, mais cela devrait fonctionner:

ServicePointManager.ServerCertificateValidationCallback = _
      New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)

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

1
répondu Tim Schmelter 2011-05-13 21:37:35

Dans VB.Net,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

résout le problème des applications moins sécurisées.

0
répondu vidhya 2016-07-07 02:19:30

One-liner:

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

Crédits Robby Tendean

0
répondu MrCalvin 2018-03-06 08:08:00