Поделиться через


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

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

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