Mendedahkan Versi TLS yang Dirundingkan dalam Permintaan HTTP .NET Anda
Aplikasi .NET lalai kepada TLS 1.2 untuk permintaan web. Walau bagaimanapun, anda boleh mengawal terus protokol yang dibenarkan dan menentukan versi TLS yang dirundingkan terakhir menggunakan kaedah yang diterangkan di bawah.
Kaedah 1: Memanfaatkan Refleksi .NET dengan SslStream
Periksa sifat TlsStream
strim yang diperoleh daripada HttpWebRequest.GetRequestStream()
atau HttpWebRequest.GetResponseStream()
. Gunakan refleksi untuk mengakses objek SslState
dan mengekstrak sifat SslProtocol
, mendedahkan versi TLS yang dirundingkan.
Kaedah 2: Menggunakan Atribut Konteks Keselamatan .NET
API QueryContextAttributesW
(terletak di secur32.dll
) membenarkan mendapatkan semula butiran konteks keselamatan sambungan. Secara khusus, periksa ahli dwProtocol
dalam struktur SecPkgContext_ConnectionInfo
untuk mengenal pasti SslProtocol yang digunakan.
Kaedah 3: Alternatif menggunakan TcpClient (Pengesahan Sebelah Pelayan Sahaja)
Pendekatan ini menggunakan TcpClient()
untuk mencipta sambungan selamat dan mengesahkan sijil pelayan menggunakan tetapan yang sama seperti ServicePointManager
. Nota: Ini tidak sesuai jika anda memerlukan maklumat TLS sebelum memulakan permintaan web.
Teknik ini melibatkan refleksi atau API peringkat rendah. Sentiasa menjangkakan pengecualian dan menangani kemungkinan isu kebenaran refleksi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Versi TLS Dirundingkan Digunakan dalam Permintaan HTTP .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!