Maison >développement back-end >C++ >Comment puis-je déterminer la version TLS négociée utilisée dans les requêtes HTTP .NET ?
Découverte de la version TLS négociée dans vos requêtes HTTP .NET
Les applications .NET utilisent par défaut TLS 1.2 pour les requêtes Web. Cependant, vous pouvez contrôler directement les protocoles autorisés et déterminer la version finale négociée de TLS à l'aide des méthodes décrites ci-dessous.
Méthode 1 : tirer parti de la réflexion .NET avec SslStream
Inspectez la propriété TlsStream
du flux obtenu à partir de HttpWebRequest.GetRequestStream()
ou HttpWebRequest.GetResponseStream()
. Utilisez la réflexion pour accéder à l'objet SslState
et extraire la propriété SslProtocol
, révélant ainsi la version TLS négociée.
Méthode 2 : Utilisation des attributs de contexte de sécurité .NET
L'API QueryContextAttributesW
(située dans secur32.dll
) permet de récupérer les détails du contexte de sécurité de connexion. Plus précisément, examinez le membre dwProtocol
dans la structure SecPkgContext_ConnectionInfo
pour identifier le protocole SslProtocol utilisé.
Méthode 3 : une alternative utilisant TcpClient (validation côté serveur uniquement)
Cette approche utilise TcpClient()
pour créer une connexion sécurisée et vérifier le certificat du serveur en utilisant les mêmes paramètres que ServicePointManager
. Remarque : Cela ne convient pas si vous avez besoin d'informations TLS avant de lancer la requête Web.
Ces techniques impliquent la réflexion ou des API de niveau inférieur. Anticipez toujours les exceptions et résolvez les problèmes potentiels d’autorisation de réflexion.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!