ServicePointManager.SecurityProtocol Свойство

Определение

Возвращает или задает протокол безопасности, ServicePoint используемый объектами, управляемыми ServicePointManager объектом.

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. Это позволяет .NET Сетевые API Платформы на основе SslStream (например, FTP, HTTP и SMTP) наследовать протоколы безопасности по умолчанию от операционной системы или от пользовательских конфигураций, выполняемых системным администратором. Сведения о том, какие протоколы SSL/TLS включены по умолчанию для каждой версии операционной системы Windows, см. в разделе Protocols в TLS/SSL (Schannel SSP).

Для версий .NET Framework через .NET Framework 4.6.2 значение по умолчанию не указано для этого свойства. Ландшафт безопасности постоянно изменяется, а протоколы и уровни защиты по умолчанию изменяются со временем, чтобы избежать известных слабых мест. Значения по умолчанию зависят от отдельной конфигурации компьютера, установленного программного обеспечения и примененных исправлений.

Код никогда не должен неявно зависеть от использования определенного уровня защиты или от предположения, что заданный уровень безопасности используется по умолчанию. Если приложение зависит от использования определенного уровня безопасности, необходимо явно указать этот уровень, а затем убедиться, что он фактически используется для установленного подключения. Кроме того, код должен быть разработан, чтобы быть надежным перед лицом изменений, в которых поддерживаются протоколы, так как такие изменения часто вносятся с небольшим предварительным уведомлением, чтобы устранить возникающие угрозы.

Платформа .NET Framework 4.6 включает функцию безопасности, которая блокирует небезопасные алгоритмы шифра и хэширования для подключений. Приложения, использующие TLS/SSL через API, такие как HttpClient, HttpWebRequest, FTPClient, SmtpClient и SslStream, а также целевой платформы .NET Framework 4.6 по умолчанию получают более безопасное поведение.

Разработчики могут отказаться от этого поведения, чтобы обеспечить взаимодействие со своими существующими службами SSL3 ИЛИ службами TLS w/RC4. В этой статье объясняется, как изменить код таким образом, чтобы новое поведение было отключено.

Note

Начиная с .NET 9, это свойство сопоставляется с EnabledSslProtocolsSocketsHttpHandler.SslOptions.

Применяется к

См. также раздел