Abaikan pengesahan sijil SSL
Untuk memintas pengesahan sijil SSL semasa permintaan HTTPS, anda boleh menggunakan proksi ServicePointManager.ServerCertificateValidationCallback
. Proksi ini membenarkan logik pengesahan sijil tersuai, membolehkan kami mengabaikan ralat pengesahan.
Butiran ejen
Proksi ServicePointManager.ServerCertificateValidationCallback
dipanggil setiap kali sambungan HTTPS dibuat dengan sijil yang tidak dipercayai atau tamat tempoh. Ia menerima empat parameter:
obj
: Contoh ServicePoint
yang cuba mengesahkan sijil. certificate
: Sijil X509 sedang disahkan. chain
: Rantaian sijil X509 yang dikaitkan dengan sijil. errors
: Ralat dasar SSL yang dikaitkan dengan percubaan pengesahan. Pencapaian
Untuk mengabaikan pengesahan sijil, daftarkan proksi yang sentiasa mengembalikan true
untuk menunjukkan penerimaan sijil. Ini boleh dilakukan dalam kaedah GetRequest()
, seperti yang ditunjukkan dalam coretan kod berikut:
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback = delegate( Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return (true); };</code>
Pelaksanaan dan Penempatan
Kaedah proksi ini dipanggil apabila WebRequest
cuba mewujudkan sambungan HTTPS dan menghadapi ralat amanah atau tamat tempoh. Ia perlu didaftarkan sebelum melaksanakan permintaan. Dalam kod yang disediakan, ia diletakkan sebelum baris Stream stream = request.GetRequestStream()
.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengabaikan Pengesahan Sijil SSL dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!