我正在将安全协议更新到我现有的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
答案 0 :(得分:5)
此修复程序在您链接到的文章中说明:
要包含对TLS v1.2的支持,请在项目中包含源文件...
换句话说 - 您需要将文章中的SecurityProtocolTypeExtensions
和SslProtocolExtensions
类型添加到您自己的项目中。
这是一个丑陋的黑客攻击,但是因为TLS 1.2在 .NET 3.5之后发布了而被删除了。
或者,如果您想避免使用这些扩展并且不介意代码中未标记的幻数,您可以忽略文章中的代码,而只是设置它:
System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)0x00000C00;
答案 1 :(得分:0)
还使用System.Security.Authentication检查文件的顶部