Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27514

VS 2010 HTTPS Post with P12 Certificate

$
0
0
I am trying to post over SSL with a certificate using the below code, but i get the error "The remote server returned an error: (403) Forbidden."
When i check my web server log, i see the error "Client did not provide certificate".
What is the proper way to initiate an HTTPS connection using a certificate ?

Thanks


Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
                Dim cert As New X509Certificate("D:\Certs\SSL.p12", "tester")
                ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CertificateValidationCallBack)

                Dim url As String = "https://myurl"
                Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest)

                Dim xmlString As String = ""
                Dim f_read As New StreamReader("D:\Files\file.xml")
                xmlString = f_read.ReadToEnd
                f_read.Close()

                Dim encoding As New ASCIIEncoding()

                Dim bytesToWrite As Byte() = encoding.GetBytes(xmlString)

                request.Method = "POST"
                request.ContentLength = bytesToWrite.Length

                request.ContentType = "text/xml; charset=utf-8"
                request.Credentials = CredentialCache.DefaultNetworkCredentials
                request.ClientCertificates.Add(cert)

                Dim newStream As Stream = request.GetRequestStream()
                newStream.Write(bytesToWrite, 0, bytesToWrite.Length)
                newStream.Close()

                Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
                Dim dataStream As Stream = response.GetResponseStream()
                Dim reader As New StreamReader(dataStream)
                Dim responseFromServer As String = reader.ReadToEnd()

                TextBox1.Text = responseFromServer
        Catch ex As Exception
                TextBox1.Text = ex.Message
        End Try
End Sub

Function CertificateValidationCallBack(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As Net.Security.SslPolicyErrors) As Boolean
        Return True
End Function


Viewing all articles
Browse latest Browse all 27514

Trending Articles