【问题标题】:Do I need to force the use of TLS 1.2 in my ASP .NET 4.6 application?我是否需要在我的 ASP .NET 4.6 应用程序中强制使用 TLS 1.2?
【发布时间】:2017-09-14 03:55:11
【问题描述】:

我们有一个第三方 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。
根据我的阅读,这听起来像是我需要做的所有事情,因为默认情况下将协商最高协议。

我说的对吗?

如果我错了,我应该在哪里从控制台应用程序中添加相同的行?全球.asax?

【问题讨论】:

  • 它是否托管在 IIS 中?
  • @DanielA.White 是的,IIS 8.5。
  • 这是您配置它的地方。
  • @DanielA.White 我不是让人们使用 TLS 1.2 连接到我的网站,我想告诉我的应用在与第三方 API 对话时使用 TLS 1.2。

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


【解决方案1】:

由于ServicePointManager.SecurityProtocolstatic,您只需为每个应用程序配置一次。这意味着将代码放入Application_Start 事件中就足够了。

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2020-05-15
    • 1970-01-01
    • 2020-01-07
    • 2020-06-09
    相关资源
    最近更新 更多