ServicePointManager.SecurityProtocol Proprietà

Definizione

Ottiene o imposta il protocollo di sicurezza utilizzato dagli ServicePoint oggetti gestiti dall'oggetto 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

Valore della proprietà

Uno dei valori definiti nell'enumerazione SecurityProtocolType .

Eccezioni

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

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. In questo modo .NET Framework le API di rete basate su SslStream (ad esempio FTP, HTTP e SMTP) possono 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 Protocols in TLS/SSL (SSP Schannel).

Per le versioni di .NET Framework tramite .NET Framework 4.6.2, per questa proprietà non è elencato alcun valore predefinito. Il panorama della sicurezza cambia costantemente e i protocolli predefiniti e i livelli di protezione 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 particolare livello di protezione o dal presupposto che per impostazione predefinita venga usato un determinato livello di sicurezza. Se l'app dipende dall'uso di un particolare livello di sicurezza, devi specificare in modo esplicito tale livello e quindi verificare che sia effettivamente in uso sulla connessione stabilita. Inoltre, il codice deve essere progettato per essere affidabile in caso di modifiche a cui sono supportati i protocolli, in quanto tali modifiche vengono spesso apportate con poco preavviso per attenuare le minacce emergenti.

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

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.

Note

A partire da .NET 9, questa proprietà esegue il mapping a EnabledSslProtocols su SocketsHttpHandler.SslOptions.

Si applica a

Vedi anche