2017-03-15 30 views
0

TLS 1.2をサポートするためにSSL TLSチャネリングを更新する必要がある従来のVisual Studio 2010 vb.netアプリケーションがあります。私はいくつかのオプションを試してみましたが(試しにコメント付きのコードを参照してください)、私はすべて同じエラー "SSL/TLSセキュアチャンネルを作成できませんでした。私は何が欠けていますか?SSL TLS 1.2チャネルの作成VB.net HTTPS WebRequest

Public Shared Function processCCRequest(ByVal strRequest As String) As String 
    'declare the web request object and set its path to the PayTrace API 

    Dim ThisRequest As WebRequest = WebRequest.Create("https://beta.paytrace.com/api/default.pay") 
    'configure web request object attributes 
    ThisRequest.ContentType = "application/x-www-form-urlencoded" 
    ThisRequest.Method = "POST" 

    'encode the request 
    Dim Encoder As New System.Text.ASCIIEncoding 
    Dim BytesToSend As Byte() = Encoder.GetBytes(strRequest) 

    'declare the text stream and send the request to PayTrace's API 
    Dim StreamToSend As Stream = ThisRequest.GetRequestStream 
    StreamToSend.Write(BytesToSend, 0, BytesToSend.Length) 
    StreamToSend.Close() 

    ''ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; 
    ''allows for validation of SSL conversations 
    ''ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf) 
    ServicePointManager.Expect100Continue = True 
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 
    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 
    ''| SecurityProtocolType.Tls11 | SecurityProtocolType.Tls 
    ''var(response = WebRequest.Create("https://www.howsmyssl.com/").GetResponse()) 
    ''var(body = New StreamReader(response.GetResponseStream()).ReadToEnd()) 


    'Catch the response from the webrequest object 
    Dim TheirResponse As HttpWebResponse = ThisRequest.GetResponse 

    Dim sr As New StreamReader(TheirResponse.GetResponseStream) 
    Dim strResponse As String = sr.ReadToEnd 

    'Out put the string to a message box - application should parse the request instead 
    ' MsgBox(strResponse) 

    sr.Close() 
    Return strResponse 
End Function 

ご協力いただきありがとうございます。

+1

.NET 4.5ではTLS 1.2のサポートが追加されていると思いますので、インストールしてから、4.0コードで 'ServicePointManager.SecurityProtocol = DirectCast(3072、SecurityProtocolType)'回避策を使用する必要があります。 – Mark

+0

はい、私の答えでは、私の仕事を完了するためにこの情報に基づいてさらにいくつかのステップを進めました。 –

答えて

0

Microsoftから.net 4.6 Targeting Packをダウンロードしてインストールしたところ、完全に成功しました。これにより、TLS 1.2サポートを含む完全な.netアップグレードが追加され、公開オプションとして.Net 4.6が追加されました。アップグレードして公開したら、上記のコードはTLS 1.2に設定されたセキュリティプロトコルで動作しました。

関連する問題