2016-12-27 65 views
2

我有一個很大的遺留解決方案,廣泛使用自動生成的soap web代理。我想將其配置爲僅1.2的連接支持TLS,所以我需要設置爲soap web代理啓用TLS 1.2最簡單的方法是什麼?

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

實現此目的的最簡單方法是什麼?代理的子分類不適用於我,因爲它需要大量的代碼更改。並且使用部分類不能爲我提供附加配置代碼的好處。

+0

你找到了一個解決方案? – NickG

+0

我已經發布了我的解決方案。我希望它能爲你提供一些線索。 – Kalitsov

回答

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(); 
相關問題