我们有一个第三方API,很快就会强制使用TLS 1.2。
我们有两个独立的应用程序连接到这个API,一个控制台应用程序和一个ASP.NET Web应用程序,都是用C#编写的。
我已将控制台应用程序重新定位为使用.NET 4.6,它也安装在主机上。我在Main
的顶部添加了此内容。
private static void Main(string[] args)
{
// Enable TLS 1.2
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
// Disable old protocols
ServicePointManager.SecurityProtocol &= ~(SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11);
...
}
我确信这对于控制台应用程序来说已经足够了,因为它只有这一个入口点。
但是我对ASP.NET Web应用程序需要做的事情感到困惑。
首先它由3个项目组成。两个是框架和服务层的类库,第三个是UI的ASP Web应用程序。我已经浏览了其中的每一个并将它们作为.NET 4.6的目标 从我所读到的内容来看,这听起来就像我需要做的一样,因为最高协议将默认协商。
我说错了吗?
如果我错了,我在哪里可以从控制台应用添加相同的行?的Global.asax?
答案 0 :(得分:6)
由于ServicePointManager.SecurityProtocol
是static
,因此您只需为每个应用配置一次。这意味着将代码放入Application_Start
事件就足够了。