为soap Web代理启用TLS 1.2的最简单方法是什么?

时间:2016-12-27 16:19:52

标签: .net ssl

我有一个大型遗留解决方案,它广泛使用自动生成的soap Web代理。我想将其配置为仅支持TLS 1.2连接,因此我需要设置

  

System.Net.ServicePointManager.SecurityProtocol =   SecurityProtocolType.Tls12;

实现这一目标的最简单方法是什么?代理的子类化对我来说不起作用,因为它需要大量的代码更改。使用部分类并不能为我提供附加配置代码的好处。

1 个答案:

答案 0 :(得分:0)

我选择的解决方案是为我需要的每个上下文调用初始化。它可能是一个更好的解决方案,所以我愿意改进我的。

首先我定义:

public class Bootstrapper
{
    private static readonly object ensureInitializationField = null;

    static Bootstrapper()
    {
        // REFERENCE: enable TLS 1.2
        ServicePointManager.SecurityProtocol = 
            SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
    }

    /// <summary>
    /// Invokes the code in the static constructor.
    /// </summary>
    /// <remarks>
    /// Code in the static constructor is called only once.
    /// </remarks>
    public static void EnsureInitialization()
    {
        Equals(ensureInitializationField, null);
    }
}

后来我从所需的上下文(例如Global.asax.cs)中调用它,如下所示:

Bootstrapper.EnsureInitialization();