我正在寻找一种使用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.
在VB.Net中,您需要编写
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
一内胆:
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
我不确定但这应该有效:
ServicePointManager.ServerCertificateValidationCallback = _
New RemoteCertificateValidationCallback(AddressOf AcceptAllCertifications)
在VB.Net中,
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
解决了安全性较低的应用问题。