SecurityProtocolTypeExtensions.Tls12;在当前背景下不存在

时间:2017-01-31 10:24:03

标签: c# asp.net .net-3.5 tls1.2

我正在将安全协议更新到我现有的3.5 .net框架应用程序,以便顺利运行我的支付网关。我添加了以下代码

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

在我Global.asax Application_Start中,但它给了我编译时错误

  

名称' SecurityProtocolTypeExtensions'不存在于   当前背景

我正在关注Microsoft提供的此链接S upport for TLS System Default Versions included in the .NET Framework 3.5.1 on Windows 7 SP1 and Server 2008 R2 SP1

更新1:

还尝试了上面的链接,在项目中添加了两个文件,现在我得到了一个例外" System.NotSupportedException:不支持所请求的安全协议"

更新2:

按照Jon Davies的建议尝试,但仍然没有运气。相同的例外System.NotSupportedException

2 个答案:

答案 0 :(得分:5)

此修复程序在您链接到的文章中说明:

  

要包含对TLS v1.2的支持,请在项目中包含源文件...

换句话说 - 您需要将文章中的SecurityProtocolTypeExtensionsSslProtocolExtensions类型添加到您自己的项目中。

这是一个丑陋的黑客攻击,但是因为TLS 1.2在 .NET 3.5之后发布了而被删除了。

或者,如果您想避免使用这些扩展并且不介意代码中未标记的幻数,您可以忽略文章中的代码,而只是设置它:

System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)0x00000C00;

答案 1 :(得分:0)

还使用System.Security.Authentication检查文件的顶部