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. В этой статье объясняется, как изменить код, чтобы отключить новое поведение.