ServicePointManager.SecurityProtocol 属性

定义

获取或设置由 ServicePointManager 对象管理的 ServicePoint 对象所使用的安全协议。

public:
 static property System::Net::SecurityProtocolType SecurityProtocol { System::Net::SecurityProtocolType get(); void set(System::Net::SecurityProtocolType value); };
public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

属性值

SecurityProtocolType 枚举中定义的值之一。

例外

为设置属性而指定的值不是有效 SecurityProtocolType 枚举值。

注解

此属性选择用于新连接的安全套接字层 (SSL) 或传输层安全性 (TLS) 协议的版本;现有连接不会更改。

从 .NET Framework 4.7 开始,此属性的默认值为 SecurityProtocolType.SystemDefault。 这允许基于 SslStream FTP、HTTP 和 SMTP) 等 (.NET Framework网络 API 从操作系统或系统管理员执行的任何自定义配置继承默认安全协议。 有关每个版本的 Windows 操作系统上默认启用的 SSL/TLS 协议的信息,请参阅 TLS/SSL (Schannel SSP) 中的协议

对于通过 .NET Framework 4.6.2 的.NET Framework版本,不会列出此属性的默认值。 安全环境不断变化,默认协议和保护级别会随着时间的推移而变化,以避免已知的弱点。 默认值因各个计算机配置、已安装的软件和应用的修补程序而异。

代码绝不应隐式依赖于使用特定保护级别,或假定默认使用给定安全级别。 如果你的应用依赖于使用特定的安全级别,则必须明确指定该级别,然后进行检查以确保在已建立的连接上实际使用了该安全级别。 此外,在面对支持协议的更改时,代码应设计为可靠,因为此类更改通常很少事先通知,以缓解新出现的威胁。

.NET Framework 4.6 包含一项新的安全功能,可阻止不安全的加密和哈希算法进行连接。 默认情况下,通过 HTTPClient、HttpWebRequest、FTPClient、SmtpClient、SslStream 等 API 使用 TLS/SSL 并面向 .NET Framework 4.6 的应用程序会获得更安全的行为。

开发人员可能需要选择退出此行为,以保持与其现有 SSL3 服务或 TLS(含 RC4 服务)的互操作性。 本文 介绍如何修改代码,以便禁用新行为。

适用于

另请参阅