ServicePointManager.SecurityProtocol Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType
Wartość właściwości
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 programu .NET Framework 4.7, domyślną wartością tej właściwości jest SecurityProtocolType.SystemDefault. Dzięki temu interfejsy API sieci programu .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 programu .NET Framework za pośrednictwem programu .NET Framework 4.6.2 żadna wartość domyślna nie jest wyświetlana dla tej właściwości. Zmiany w poziomie zabezpieczeń stale, 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ń.
Program .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 przeznaczone dla platformy .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.