Memintas Pengesahan Sijil SSL dalam Permintaan HTTPS C#
Artikel ini memperincikan cara untuk menyekat pengesahan sijil SSL apabila membuat permintaan HTTPS dalam C#. Ini dicapai menggunakan perwakilan ServicePointManager.ServerCertificateValidationCallback
, membenarkan pengendalian tersuai ralat sijil SSL.
Pemahaman ServicePointManager.ServerCertificateValidationCallback
Perwakilan ServicePointManager.ServerCertificateValidationCallback
dicetuskan semasa penubuhan sambungan HTTPS. Ia menerima empat hujah:
sender
: Objek HttpWebRequest
asal.certificate
: Pelayan menyampaikan sijil X.509.chain
: Rantaian sijil X.509 pelayan.errors
: Ralat dasar SSL ditemui semasa pengesahan.Bagaimana ServicePointManager.ServerCertificateValidationCallback
Berfungsi
Perwakilan ini melaksanakan sebelum jabat tangan TLS dan pengesahan sijil. Nilai pulangannya menentukan sama ada sambungan diteruskan.
Penempatan Pembatalan yang Betul
Timpa perlu dilaksanakan sebelum sebarang permintaan HTTPS dibuat. Ini memastikan ia aktif apabila sambungan dimulakan.
Contoh Ungkapan Lambda
Kaedah ringkas menggunakan ungkapan lambda:
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => { return true; // Accept all certificates };</code>
Pertimbangan Penting
true
, dengan berkesan mengabaikan semua ralat sijil. Ini secara amnya tidak disyorkan untuk persekitaran pengeluaran disebabkan oleh risiko keselamatan yang ketara.HttpWebRequest.PreAuthenticate
kepada true
biasanya tidak diperlukan untuk pengesahan sijil.Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengatasi Pengesahan Sijil SSL dalam Permintaan HTTPS C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!