ServicePointManager.SecurityProtocol Proprietà

Definizione

Ottiene o imposta il protocollo di sicurezza usato dagli oggetti ServicePoint gestiti dall'oggetto ServicePointManager.

public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }

Valore della proprietà

Uno dei valori definiti nell'enumerazione SecurityProtocolType.

Eccezioni

Il valore specificato per impostare la proprietà non è un valore di enumerazione SecurityProtocolType valido.

Commenti

Questa proprietà seleziona la versione del protocollo SSL (Secure Sockets Layer) o Transport Layer Security (TLS) da usare per le nuove connessioni; le connessioni esistenti non vengono modificate.

A partire da .NET Framework 4.7, il valore predefinito di questa proprietà è SecurityProtocolType.SystemDefault. Ciò consente alle API di rete di .NET Framework basate su SslStream (ad esempio FTP, HTTP e SMTP) di ereditare i protocolli di sicurezza predefiniti dal sistema operativo o da qualsiasi configurazione personalizzata eseguita da un amministratore di sistema. Per informazioni sui protocolli SSL/TLS abilitati per impostazione predefinita in ogni versione del sistema operativo Windows, vedere Protocolli in TLS/SSL (SSP Schannel).For information about which SSL protocols are enabled by default on each version of the Windows operating system, see Protocols in TLS/SSL (Schannel SSP).

Per le versioni di .NET Framework tramite .NET Framework 4.6.2, non è elencato alcun valore predefinito per questa proprietà. Il panorama della sicurezza cambia costantemente e i protocolli e i livelli di protezione predefiniti vengono modificati nel tempo per evitare punti deboli noti. Le impostazioni predefinite variano a seconda della singola configurazione del computer, del software installato e delle patch applicate.

Il codice non deve mai dipendere in modo implicito dall'uso di un determinato livello di protezione o dal presupposto che un determinato livello di sicurezza venga usato per impostazione predefinita. Se la tua app dipende dall'uso di un livello di sicurezza specifico, devi specificare in modo esplicito quel livello e quindi verificare che sia effettivamente in uso per la connessione stabilita. Inoltre, il codice deve essere progettato per essere affidabile in caso di modifiche alle quali sono supportati i protocolli, in quanto tali modifiche vengono spesso apportate con un preavviso minimo per mitigare le minacce emergenti.

.NET Framework 4.6 include una nuova funzionalità di sicurezza che blocca algoritmi di crittografia e hash non sicuri per le connessioni. Per impostazione predefinita, le applicazioni che usano TLS/SSL tramite API, ad esempio HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream e per .NET Framework 4.6, ottengono il comportamento più sicuro.

Gli sviluppatori potrebbero voler rifiutare esplicitamente questo comportamento per mantenere l'interoperabilità con i servizi SSL3 esistenti O TLS w/ RC4. Questo articolo illustra come modificare il codice in modo che il nuovo comportamento sia disabilitato.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Vedi anche