web-dev-qa-db-ja.com

.Net 3.5フレームワークでセキュリティプロトコルTLS 1.2を実装する方法

Paypalが応答を更新したため、.NET 3.5フレームワーク上にある既存のアプリケーションでセキュリティプロトコルTLSをv1.2に更新する必要があります。既存のコードでこれを更新するために必要な変更は何ですか、アプリケーションを新しいフレームワークに更新できません。

11
trighati

VS 2008で.net 3.5.30729.4926を使用しています。私がしなければならなかったのは:

インポートを追加します。

Imports System.Security.Authentication
Imports System.Net

これを私のコードに追加します(C#):

public const SslProtocols _Tls12 = (SslProtocols)0x00000C00;
public const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12;
ServicePointManager.SecurityProtocol = Tls12;

VB.netバージョン:

Const _Tls12 As SslProtocols = DirectCast(&HC00, SslProtocols)
Const Tls12 As SecurityProtocolType = DirectCast(_Tls12, SecurityProtocolType)
ServicePointManager.SecurityProtocol = Tls12

Dim wbrq As HttpWebRequest
Dim wbrs As HttpWebResponse
Dim sw As StreamWriter
Dim sr As StreamReader
Dim strResult As String

'Create a new HttpWebRequest object.
wbrq = WebRequest.Create(strURL)
wbrq.Method = "POST"
wbrq.ContentLength = DataString.Length
wbrq.ContentType = "application/x-www-form-urlencoded"

'upload data
sw = New StreamWriter(wbrq.GetRequestStream)
sw.Write(DataString)
sw.Close()

'get response
wbrs = wbrq.GetResponse
sr = New StreamReader(wbrs.GetResponseStream)
strResult = sr.ReadToEnd.Trim
sr.Close()  
16
D_Bester

vb .net 3.5バージョンにコードを追加するだけです:

ServicePointManager.SecurityProtocol = DirectCast(3072, SecurityProtocolType)

あなたのコードは次のようになります:

ServicePointManager.SecurityProtocol = DirectCast(3072, SecurityProtocolType)

Dim wbrq As HttpWebRequest
Dim wbrs As HttpWebResponse
Dim sw As StreamWriter
Dim sr As StreamReader
Dim strResult As String

'Create a new HttpWebRequest object.
wbrq = WebRequest.Create(strURL)
wbrq.Method = "POST"
wbrq.ContentLength = DataString.Length
wbrq.ContentType = "application/x-www-form-urlencoded"
.............

この助けを願っています

3
Yosep Tito

NET 3.5.1を使用している場合、ロールアップ修正プログラムを適用し、レジストリの編集を適用して、.NETにシステムのデフォルトを使用するように指示するオプションがあります。 詳細はこちら

TLS 1.2および1.1をサポートするために、少なくともWindows Server 2008 R2で.NET 4.5を使用する必要があることに失敗した場合。

2
Ian Bennett