ServicePointManager.SecurityProtocol Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.