我有一个大型遗留解决方案,它广泛使用自动生成的soap Web代理。我想将其配置为仅支持TLS 1.2连接,因此我需要设置
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
实现这一目标的最简单方法是什么?代理的子类化对我来说不起作用,因为它需要大量的代码更改。使用部分类并不能为我提供附加配置代码的好处。
答案 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();