ServicePointManager.SecurityProtocol Właściwość

Definicja

Pobiera lub ustawia protokół zabezpieczeń używany przez ServicePoint obiekty zarządzane przez ServicePointManager obiekt.

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; }
member this.SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

Wartość właściwości

SecurityProtocolType

Jedna z wartości zdefiniowanych w wyliczenie SecurityProtocolType .

Wyjątki

Określona wartość ustawiania właściwości nie jest prawidłową SecurityProtocolType wartością wyliczenia.

Uwagi

Ta właściwość wybiera wersję protokołu SSL (Secure Sockets Layer) lub Transport Layer Security (TLS) do użycia dla nowych połączeń; istniejące połączenia nie są zmieniane.

Począwszy od .NET Framework 4.7, domyślną wartością tej właściwości jest SecurityProtocolType.SystemDefault. Dzięki temu interfejsy API sieci .NET Framework oparte na SslStream (takich jak FTP, HTTP i SMTP) dziedziczą domyślne protokoły zabezpieczeń z systemu operacyjnego lub z dowolnych niestandardowych konfiguracji wykonywanych przez administratora systemu. Aby uzyskać informacje o tym, które protokoły SSL/TLS są domyślnie włączone w każdej wersji systemu operacyjnego Windows, zobacz Protokoły w protokole TLS/SSL (SSP Schannel).

W przypadku wersji .NET Framework za pośrednictwem .NET Framework 4.6.2 żadna wartość domyślna nie jest wyświetlana dla tej właściwości. Poziom zabezpieczeń stale się zmienia, a domyślne protokoły i poziomy ochrony są zmieniane wraz z upływem czasu, aby uniknąć znanych słabości. Wartości domyślne różnią się w zależności od konfiguracji poszczególnych maszyn, zainstalowanych oprogramowania i zastosowanych poprawek.

Kod nigdy nie powinien być niejawnie zależny od używania określonego poziomu ochrony lub przy założeniu, że dany poziom zabezpieczeń jest domyślnie używany. Jeśli aplikacja zależy od użycia określonego poziomu zabezpieczeń, musisz jawnie określić ten poziom, a następnie sprawdzić, czy jest on rzeczywiście używany w nawiązanym połączeniu. Ponadto kod powinien być zaprojektowany tak, aby był niezawodny w obliczu zmian obsługiwanych protokołów, ponieważ takie zmiany są często wprowadzane z niewielkim wyprzedzeniem w celu ograniczenia pojawiających się zagrożeń.

.NET Framework 4.6 zawiera nową funkcję zabezpieczeń, która blokuje niezabezpieczone algorytmy szyfrowania i skrótów dla połączeń. Aplikacje korzystające z protokołu TLS/SSL za pośrednictwem interfejsów API, takich jak HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream itp., i docelowe .NET Framework 4.6 domyślnie uzyskują bardziej bezpieczne zachowanie.

Deweloperzy mogą zrezygnować z tego zachowania, aby zachować współdziałanie z istniejącymi usługami SSL3 lub TLS w/ RC4. W tym artykule wyjaśniono, jak zmodyfikować kod tak, aby nowe zachowanie było wyłączone.

Dotyczy

Zobacz też