Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengabaikan Pengesahan Sijil SSL dalam C#?

Bagaimanakah Saya Boleh Mengabaikan Pengesahan Sijil SSL dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-15 19:36:45355semak imbas

How Can I Ignore SSL Certificate Verification in C#?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn