我们的ASP.NET 2.0网站通过调用Authorize.Net的API处理信用卡交易。Authorize已通知我们,在某个特定日期,将宣布我们的客户端必须使用TLS 1.2协议进行API调用。
微软似乎在10-22-16 KB文章中表明已经提供了解决方案:https://support.microsoft.com/en-us/help/3154517/support-for-tls-system-default-versions-included-in-the-.net-framework-2.0-sp2-on-windows-vista-sp2-and-server-2008-sp2 引用如下:
我已根据KB文章所示的解决方案实施并测试了我的理解,具体步骤如下:
提前感谢您的帮助!
微软似乎在10-22-16 KB文章中表明已经提供了解决方案:https://support.microsoft.com/en-us/help/3154517/support-for-tls-system-default-versions-included-in-the-.net-framework-2.0-sp2-on-windows-vista-sp2-and-server-2008-sp2 引用如下:
请注意,尽管本文标题如此,但上述引用并不指代Windows Vista SP2或Windows 2008 SP2操作系统,因为这些操作系统不支持TLS v1.1和v1.2。... 我们添加了SslProtocolsExtensions枚举,您可以将其用作设置TLS v1.2、TLS v1.1以及ServicePointManager.SecurityProtocol属性的操作系统默认值的选项,当针对.NET框架版本2.0 SP2时。
我已根据KB文章所示的解决方案实施并测试了我的理解,具体步骤如下:
- 在我们的Windows Server 2008 R2 Web服务器上启用了TLS 1.2(并通过ssllabs.com进行确认)。
- 确认实际已安装.NET框架版本2.0的SP2。
- 将引用的KB文章中显示的两个源文件(即SecurityProtocolTypeExtensions.cs和SslProtocolsExtensions.cs)添加到我们的项目中。
- 在API调用之前,将以下代码插入到项目中:System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;
此时,我感到困惑。特别希望能够得到任何有关如何解决这个问题的见解,但也想了解您是否知道任何其他方法来允许ASP.NET 2.0应用程序的API调用使用TLS 1.2。(升级到更高版本的.NET框架是最后的选择。)System.NotSupportedException: 不支持请求的安全协议。
提前感谢您的帮助!