.NET 2.0中的SecurityProtocol Tls 1.2

3
我有一个应用程序,它是为.NET 2.0和4.5编译的,并且它们需要使用Tls 1.2 SecurityProtocol来连接到API。 Tls 1.2在.NET 4.5中得到支持,但在.NET 2.0中不支持,因此我找到了这个技巧,似乎可以让Tls 1.2在.NET 2.0中工作:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

到目前为止,我所做的唯一测试就是在我的电脑上进行的,该电脑已安装了.NET 4.5,所以我不确定这是否能够在只有.NET 2.0的机器上正常运行。
所以,我的问题是,上述解决方案是否真的适用于.NET 2.0?如果是,为什么以及如何适用?我担心由于我安装了.NET 4.5版本,即使我运行一个.NET 2.0编译的应用程序,也会因此在我的电脑上获得误导性的测试结果。
2个回答

2

不是的 - 如你所猜测的那样,这只是因为你同时安装了.NET 4.5才能工作。

请记住,除非您在可执行文件的app.config文件中明确指定运行时版本,否则将使用已安装的Framework的最高版本。我敢肯定,如果您通过配置文件强制应用程序使用.NET 2.0,当它运行并遇到您突出显示的代码行时,它将抛出异常,因为2.0没有在其版本的SecurityProtocolType枚举中定义值3072(Tls12)。

.NET 2.0的唯一选择是支持TLS 1.2的第三方库,尽管我更加好奇的是为什么您不能将应用程序升级到.NET 4.5或更高版本。


2

谢谢提供链接,但这不是一个选项。 - marcus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接