ServicePointManager.SecurityProtocol Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o protocolo de segurança usado pelos ServicePoint objetos gerenciados pelo ServicePointManager objeto.
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
Valor da propriedade
Um dos valores definidos na SecurityProtocolType enumeração.
Exceções
O valor especificado para definir a propriedade não é um valor de enumeração válido SecurityProtocolType .
Comentários
Essa propriedade seleciona a versão do protocolo SSL (Secure Sockets Layer) ou TLS (Transport Layer Security) a ser usada para novas conexões; As conexões existentes não são alteradas.
A partir do .NET Framework 4.7, o valor padrão dessa propriedade é SecurityProtocolType.SystemDefault. Isso permite que as APIs de rede do .NET Framework com base em SslStream (como FTP, HTTP e SMTP) herdem os protocolos de segurança padrão do sistema operacional ou de quaisquer configurações personalizadas executadas por um administrador do sistema. Para obter informações sobre quais protocolos SSL/TLS estão habilitados por padrão em cada versão do sistema operacional Windows, consulte Protocols no TLS/SSL (SSP Schannel).
Para versões do .NET Framework por meio do .NET Framework 4.6.2, nenhum valor padrão é listado para essa propriedade. O cenário de segurança muda constantemente e os protocolos padrão e os níveis de proteção são alterados ao longo do tempo, a fim de evitar pontos fracos conhecidos. Os padrões variam dependendo da configuração de computador individual, do software instalado e dos patches aplicados.
Seu código nunca deve depender implicitamente do uso de um nível de proteção específico ou da suposição de que um determinado nível de segurança é usado por padrão. Se o aplicativo depender do uso de um determinado nível de segurança, você deverá especificar explicitamente esse nível e verificar se ele está realmente em uso na conexão estabelecida. Além disso, seu código deve ser projetado para ser robusto diante das alterações às quais há suporte para protocolos, pois essas alterações geralmente são feitas com pouco aviso prévio para atenuar ameaças emergentes.
O .NET Framework 4.6 inclui um recurso de segurança que bloqueia algoritmos de criptografia e hash inseguros para conexões. Os aplicativos que usam TLS/SSL por meio de APIs como HttpClient, HttpWebRequest, FTPClient, SmtpClient e SslStream e direcionamento ao .NET Framework 4.6 obtêm o comportamento mais seguro por padrão.
Talvez os desenvolvedores desejem recusar esse comportamento para manter a interoperabilidade com seus serviços SSL3 ou TLS w/ RC4 existentes. Este artigo explica como modificar seu código para que o novo comportamento seja desabilitado.
Note
Desde o .NET 9, essa propriedade é mapeada EnabledSslProtocolspara SocketsHttpHandler.SslOptions .