2017-02-27 146 views

回答

2

如果您在NET 3.5.1上,您可以选择应用汇总修补程序并应用注册表编辑来告诉.NET使用系统默认值。 More details here

如果您需要使用.NET 4.5 for TLS 1.2 & 1.1支持,并且至少需要在Windows Server 2008 R2上运行。

+0

您的链接被打破。 – Cullub

5

我使用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() 
+1

@Cullub谢谢。我怀疑MS可能会在旧版本的.net中翻新常量。 –

+0

这比现在的其他答案要好 - 它不依赖于断开的链接;-) – Cullub

+0

代码中的位置是放在哪里的?在一堂课上?或global.asax?等等? – Anna