Aufdecken der ausgehandelten TLS-Version in Ihren .NET-HTTP-Anfragen
.NET-Anwendungen verwenden für Webanfragen standardmäßig TLS 1.2. Sie können jedoch die zulässigen Protokolle direkt steuern und die endgültig ausgehandelte TLS-Version mithilfe der unten beschriebenen Methoden ermitteln.
Methode 1: Nutzung von .NET Reflection mit SslStream
Überprüfen Sie die TlsStream
-Eigenschaft des Streams, der von HttpWebRequest.GetRequestStream()
oder HttpWebRequest.GetResponseStream()
erhalten wurde. Nutzen Sie Reflektion, um auf das SslState
-Objekt zuzugreifen und die SslProtocol
-Eigenschaft zu extrahieren, wodurch die ausgehandelte TLS-Version angezeigt wird.
Methode 2: Verwendung von .NET-Sicherheitskontextattributen
Die QueryContextAttributesW
API (befindet sich in secur32.dll
) ermöglicht den Abruf von Verbindungssicherheitskontextdetails. Untersuchen Sie insbesondere das dwProtocol
-Mitglied innerhalb der SecPkgContext_ConnectionInfo
-Struktur, um das verwendete SslProtocol zu identifizieren.
Methode 3: Eine Alternative mit TcpClient (nur serverseitige Validierung)
Dieser Ansatz verwendet TcpClient()
, um eine sichere Verbindung herzustellen und das Serverzertifikat mit denselben Einstellungen wie ServicePointManager
zu überprüfen. Hinweis: Dies ist ungeeignet, wenn Sie TLS-Informationen vor dem Initiieren der Webanfrage benötigen.
Diese Techniken beinhalten Reflektion oder APIs auf niedrigerer Ebene. Rechnen Sie stets mit Ausnahmen und gehen Sie mögliche Probleme mit der Reflexionsberechtigung an.
Das obige ist der detaillierte Inhalt vonWie kann ich die ausgehandelte TLS-Version ermitteln, die in .NET-HTTP-Anfragen verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!