ServicePointManager.SecurityProtocol Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen des Sicherheitsprotokolls, das von den objekten verwendet wird, die ServicePointServicePointManager vom Objekt verwaltet werden.
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
Eigenschaftswert
Einer der in der SecurityProtocolType Enumeration definierten Werte.
Ausnahmen
Der angegebene Wert zum Festlegen der Eigenschaft ist kein gültiger SecurityProtocolType Enumerationswert.
Hinweise
Diese Eigenschaft wählt die Version des SSL-Protokolls (Secure Sockets Layer) oder transport Layer Security (TLS) aus, das für neue Verbindungen verwendet werden soll. vorhandene Verbindungen werden nicht geändert.
Ab dem .NET Framework 4.7 ist der Standardwert dieser Eigenschaft SecurityProtocolType.SystemDefault. Auf diese Weise können .NET Framework-Netzwerk-APIs basierend auf SslStream (z. B. FTP, HTTP und SMTP) die Standardsicherheitsprotokolle vom Betriebssystem oder von benutzerdefinierten Konfigurationen erben, die von einem Systemadministrator ausgeführt werden. Informationen dazu, welche SSL/TLS-Protokolle in jeder Version des Windows Betriebssystems standardmäßig aktiviert sind, finden Sie unter Protocols in TLS/SSL (Schannel SSP).
Für Versionen des .NET Frameworks über das .NET Framework 4.6.2 wird für diese Eigenschaft kein Standardwert aufgeführt. Die Sicherheitslandschaft ändert sich ständig, und Standardprotokolle und Schutzstufen werden im Laufe der Zeit geändert, um bekannte Schwachstellen zu vermeiden. Die Standardwerte variieren je nach konfiguration einzelner Computer, installierter Software und angewendeten Patches.
Ihr Code sollte niemals implizit von der Verwendung einer bestimmten Schutzebene oder von der Annahme abhängen, dass eine bestimmte Sicherheitsstufe standardmäßig verwendet wird. Wenn Ihre App von der Verwendung einer bestimmten Sicherheitsstufe abhängt, müssen Sie diese Ebene explizit angeben und dann überprüfen, ob sie tatsächlich für die hergestellte Verbindung verwendet wird. Darüber hinaus sollte Ihr Code so konzipiert sein, dass er robust ist, angesichts von Änderungen, an denen Protokolle unterstützt werden, da solche Änderungen häufig mit geringem Vorabhinweis vorgenommen werden, um neue Bedrohungen zu mindern.
.NET Framework 4.6 enthält ein Sicherheitsfeature, das unsichere Verschlüsselungs- und Hashingalgorithmen für Verbindungen blockiert. Anwendungen, die TLS/SSL über APIs wie HttpClient, HttpWebRequest, FTPClient, SmtpClient und SslStream verwenden und auf .NET Framework 4.6 abzielen, erhalten standardmäßig das sicherere Verhalten.
Entwickler möchten dieses Verhalten möglicherweise deaktivieren, um die Interoperabilität mit ihren vorhandenen SSL3-Diensten ODER TLS w/RC4-Diensten aufrechtzuerhalten. In diesem Artikel wird erläutert, wie Sie Ihren Code so ändern, dass das neue Verhalten deaktiviert ist.
Note
Seit .NET 9 ist EnabledSslProtocols diese Eigenschaft aktiviert SocketsHttpHandler.SslOptions.