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
Wartość określona do ustawienia właściwości nie jest prawidłową SecurityProtocolType wartością wyliczenia.
Uwagi
Ta właściwość wybiera wersję protokołu Secure Sockets Layer (SSL) lub Transport Layer Security (TLS) do użycia na potrzeby nowych połączeń; istniejące połączenia nie są zmieniane.
Począwszy od .NET Framework 4.7, wartość domyślna tej właściwości to SecurityProtocolType.SystemDefault. Dzięki temu .NET Framework interfejsy API sieciowe 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 dla tej właściwości nie ma wartości domyślnej. 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, zainstalowanego 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 używany domyślnie. Jeśli aplikacja zależy od użycia określonego poziomu zabezpieczeń, musisz jawnie określić ten poziom, a następnie sprawdzić, czy jest ona rzeczywiście używana 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 wyeliminowania pojawiających się zagrożeń.
.NET Framework 4.6 zawiera nową funkcję zabezpieczeń, która blokuje niezabezpieczone algorytmy szyfrowania i tworzenia 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 określania wartości docelowych .NET Framework 4.6 domyślnie uzyskują bezpieczniejsze 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla