VB .net接受自签名SSL证书

问题描述 投票:19回答:4

我正在寻找一种使用VB .Net验证(或绕过验证)自签名SSL证书的方法。我发现代码在C#中执行此操作并尝试将其转换为VB代码,但我没有运气。

这是C# code.

这是我尝试过的:

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

然后在Webrequest之前,我有这行代码,这给了我一个错误。

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.
.net vb.net ssl ssl-certificate
4个回答
28
投票

在VB.Net中,您需要编写

ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications

2
投票

一内胆:

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


1
投票

我不确定但这应该有效:

ServicePointManager.ServerCertificateValidationCallback = _
      New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)

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


0
投票

在VB.Net中,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

解决了安全性较低的应用问题。

© www.soinside.com 2019 - 2024. All rights reserved.