Двусторонняя аутентификация с использованием ssl в dotnet

У меня есть проект, в котором мне нужно отправить файл данных через веб-запрос. Нам нужно настроить двустороннюю аутентификацию, также известную как взаимная аутентификация. Мы не уверены, нужен нам специальный сертификат или нет, но мы знаем, что он должен быть уровня 3.

Мне не удается найти образец кода для этого случая. Я не знаю, куда добавить нашу информацию о сертификате. С этим кодом возникает ошибка Базовое соединение закрыто , когда мы пытаемся прочитать поток ответа, и ServicePointManager.ServerCertificateValidationCallback никогда не вызывается. Вот что у меня есть:

ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf MyCertValidationCb)
            httpReq = CType(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
            For Each cert As String In certs
                X509cert = X509Certificate2.CreateFromCertFile(cert)
                X509cert2 = New X509Certificate2(X509cert)
                httpReq.ClientCertificates.Add(X509cert2)
            Next
            httpReq.Method = "POST"        ' Post method
            httpReq.ContentType = "text/xml"               ' content type

            ' Wrap the request stream with a text-based writer
            writer = New StreamWriter(httpReq.GetRequestStream())
            ' Write the XML text into the stream
            reader = New StreamReader(filename.Name)
            ret = reader.ReadToEnd()
            reader.Close()
            ' Send the data to the webserver
            writer.WriteLine(ret)
            writer.Close()
            ' Wait for response
            Dim httpRsp As System.Net.HttpWebResponse = CType(httpReq.GetResponse(), HttpWebResponse)
            sr = New StreamReader(httpRsp.GetResponseStream)
            responseText = sr.ReadToEnd

            If httpReq IsNot Nothing Then
                httpReq.GetRequestStream().Close()
            End If
            If httpRsp IsNot Nothing Then
                httpRsp.GetResponseStream().Close()
            End If

Любые советы или ссылки на блоги с примерами кода были бы замечательными. Спасибо.

7
задан Sachin Chavan 9 November 2012 в 06:46
поделиться