ホームページ > バックエンド開発 > C++ > .NET HTTP リクエストで使用されるネゴシエートされた TLS バージョンを確認するにはどうすればよいですか?

.NET HTTP リクエストで使用されるネゴシエートされた TLS バージョンを確認するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-10 11:38:41
オリジナル
755 人が閲覧しました

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

.NET HTTP リクエスト内のネゴシエートされた TLS バージョンを明らかにする

.NET アプリケーションは、Web リクエストに対してデフォルトで TLS 1.2 を使用します。 ただし、以下で説明する方法を使用して、許可されるプロトコルを直接制御し、ネゴシエートされた最終的な TLS バージョンを決定することができます。

方法 1: SslStream を使用した .NET リフレクションの活用

TlsStream または HttpWebRequest.GetRequestStream() から取得したストリームの HttpWebRequest.GetResponseStream() プロパティを検査します。 リフレクションを使用して SslState オブジェクトにアクセスし、SslProtocol プロパティを抽出して、ネゴシエートされた TLS バージョンを明らかにします。

方法 2: .NET セキュリティ コンテキスト属性の利用

QueryContextAttributesW API (secur32.dll にあります) を使用すると、接続セキュリティ コンテキストの詳細を取得できます。 具体的には、dwProtocol 構造内の SecPkgContext_ConnectionInfo メンバーを調べて、使用されている SslProtocol を特定します。

方法 3: TcpClient を使用する代替方法 (サーバー側検証のみ)

このアプローチでは、TcpClient() を使用して安全な接続を作成し、ServicePointManager と同じ設定を使用してサーバー証明書を検証します。 注: これは、Web リクエストを開始するに TLS 情報が必要な場合には適していません。

これらの手法には、リフレクションまたは下位レベルの API が含まれます。 常に例外を予期し、潜在的なリフレクション許可の問題に対処してください。

以上が.NET HTTP リクエストで使用されるネゴシエートされた TLS バージョンを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート