43.*_*4D. 2 .net vb.net security ssl
这是我的代码,我花了很长时间才写出我仍然是个笨蛋:
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Form1
Dim logincookie As CookieContainer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim postdata As String = "action=do_login&url=https%3A%2F%2Fforum.suprbay.org% 2F&quick_login=1&quick_username=USERNAME&quick_password=PASSWORD&submit=Login&quick_remember=yes"
Dim tempcookies As New CookieContainer
Dim encoding As New UTF8Encoding
Dim bytedata As Byte() = encoding.GetBytes(postdata)
Dim postreq As HttpWebRequest = DirectCast(WebRequest.Create("https://forum.suprbay.org/member.php"), HttpWebRequest)
postreq.Method = "POST"
postreq.KeepAlive = True
postreq.CookieContainer = tempcookies
postreq.ContentType = "application/x-www-forum-urlencoded"
postreq.Referer = "https://forum.suprbay.org/member.php"
postreq.UserAgent = "Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
postreq.ContentLength = bytedata.Length
Dim postreqstream As Stream = postreq.GetRequestStream()
postreqstream.Write(bytedata, 0, bytedata.Length)
postreqstream.Close()
Dim postresponse As HttpWebResponse
postresponse = DirectCast(postreq.GetResponse(), HttpWebResponse)
tempcookies.Add(postresponse.Cookies)
logincookie = tempcookies
Dim postreqreader As New StreamReader(postresponse.GetResponseStream)
Dim thepage As String = postreqreader.ReadToEnd
RichTextBox1.Text = thepage
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
当我运行它并单击按钮时,我收到以下错误:
"底层连接已关闭:无法为SSL/TLS安全通道建立信任关系."
它是PirateBay.Se的官方论坛,这是一个torrent网站,如果你在常规浏览器中访问它,你会得到关于信任证书的警告,所以这可能是我收到错误的原因,对吧?如何忽略信任证书和东西,以便我的应用程序可以工作?
此行应忽略连接上的信任错误,在尝试连接之前执行此操作:
ServicePointManager.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
Run Code Online (Sandbox Code Playgroud)
您还需要在课堂上定义:
Public Shared Function ValidateRemoteCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
Return True
End Function
Run Code Online (Sandbox Code Playgroud)
对不起,如果这不是VB.Net的完美翻译,我最初在C#中有这个.
编辑:
是的,这正是您收到此错误的原因,他们拥有的证书已过期.