VB .net Accept Self-Signed SSL certificate

2019-02-08 00:40发布

I'm searching for a way to validate (or bypass validation for) self-signed SSL certificates using VB .Net. I found code to do this in C# and tried converting it into VB code, but I'm not having any luck.

Here is the C# code.

Here is what I tried:

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

Then before the Webrequest I have this line of code which gives me an error.

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

The error message is:

Delegate 'System.Net.Security.RemoteCertificateValidationCallback' requires an 'AddressOf' expression or lambda expression as the only argument to its constructor.

4条回答
孤傲高冷的网名
2楼-- · 2019-02-08 00:42

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

Credits to Robby Tendean

查看更多
做个烂人
3楼-- · 2019-02-08 01:00

In VB.Net,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

solves the less secure apps problem.

查看更多
趁早两清
4楼-- · 2019-02-08 01:01

I'm not sure but this should work:

ServicePointManager.ServerCertificateValidationCallback = _
      New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)

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

查看更多
迷人小祖宗
5楼-- · 2019-02-08 01:07

In VB.Net, you need to write

ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
查看更多
登录 后发表回答