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 ?

Comment puis-je déterminer la version TLS négociée utilisée dans les requêtes HTTP .NET ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-10 11:38:41819parcourir

How Can I Determine the Negotiated TLS Version Used in .NET HTTP Requests?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn