Panggil balik pengesahan sijil permintaan HTTPS .NET tersuai
Rangka Kerja .NET mengesahkan ketulenan sijil pelayan apabila membuat sambungan HTTPS. Walau bagaimanapun, dalam beberapa kes, mungkin perlu memintas pemeriksaan ini. Artikel ini meneroka cara melaksanakan kaedah panggil balik yang membolehkan anda mengabaikan pengesahan sijil untuk permintaan HTTPS tertentu.
Ketahui tentang ServicePointManager.ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback
ialah perwakilan yang mentakrifkan fungsi yang bertanggungjawab untuk mengesahkan sijil pelayan. Apabila Rangka Kerja .NET mewujudkan sambungan HTTPS, ia memanggil kaedah panggil balik ini untuk mengesahkan sijil. Kaedah ini mengambil parameter berikut:
obj
: Menyediakan konteks untuk pengesahan sijil pelayan. certificate
: Sijil X.509 disediakan oleh pelayan. chain
: Rantaian sijil X.509 digunakan untuk mewujudkan kepercayaan. errors
: Penghitungan yang mewakili sebarang ralat dasar SSL yang dihadapi. Kaedah pelaksanaan
Dalam kod sampel, panggilan balik ditakrifkan seperti berikut:
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback = delegate( Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };</code>
Panggil balik ini secara berkesan mengabaikan semua semakan sijil dan mengembalikan true
tanpa syarat, membenarkan sambungan diwujudkan tanpa mengira status sijil.
Kedudukan panggil balik
Kod panggilan balik hendaklah diletakkan sebelum ServicePointManager.ServerCertificateValidationCallback
dilaksanakan, yang berlaku apabila Rangka Kerja .NET cuba mewujudkan sambungan HTTPS. Dalam contoh kod, ini bermakna meletakkannya sebelum baris Stream stream = request.GetRequestStream();
.
Pilihan lain
Untuk pengesahan sijil setiap permintaan, anda boleh menggunakan ungkapan lambda seperti ini:
<code class="language-csharp">request.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;</code>
Kaedah ini membolehkan anda menyesuaikan pengesahan sijil untuk permintaan individu. Sebagai alternatif, anda boleh menggunakan panggilan balik yang sama pada penapis global, membolehkannya untuk semua sambungan HTTPS yang dibuat oleh aplikasi anda.
Dengan melaksanakan ServerCertificateValidationCallback
, anda boleh memintas pengesahan sijil untuk permintaan HTTPS, dengan itu menyambung ke pelayan yang mungkin memberikan sijil yang tidak dipercayai atau tidak sah.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Panggilan Balik Pengesahan Sijil Pelayan Tersuai dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!