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; }
member this.SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

属性值

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 w/ RC4 服务的互操作性。 本文 介绍如何修改代码,以便禁用新行为。

适用于

另请参阅