Masalah:
Menyambungkan aplikasi Windows 8 ke API web ujian gagal disebabkan oleh sijil SSL yang tidak dipercayai. Matlamatnya ialah untuk mencari penyelesaian yang serupa dengan kaedah ServerCertificateValidationCallback
yang digunakan dengan WebRequest
.
Penyelesaian:
Berikut ialah cara memintas pengesahan sijil SSL dengan HttpClient
dalam .NET Standard, menawarkan fungsi yang serupa dengan kaedah WebRequest
:
Segera HttpClientHandler
:
<code class="language-csharp">var handler = new HttpClientHandler();</code>
Set ClientCertificateOptions
:
<code class="language-csharp">handler.ClientCertificateOptions = ClientCertificateOption.Manual;</code>
Laksanakan Pengesahan Sijil Tersuai: Ungkapan lambda sentiasa kembali true
melumpuhkan pengesahan sijil:
<code class="language-csharp">handler.ServerCertificateCustomValidationCallback = (_, __, ___, ____) => true;</code>
Buat HttpClient
: Gunakan pengendali yang diubah suai untuk mencipta contoh HttpClient
:
<code class="language-csharp">var client = new HttpClient(handler);</code>
Kaedah ini membenarkan sambungan ke API ujian dengan mengabaikan pengesahan sijil. Walau bagaimanapun, adalah penting untuk memahami bahawa ini mengurangkan keselamatan dengan ketara dan menjadikan aplikasi anda terdedah kepada serangan man-in-the-middle. Hanya gunakan ini dalam persekitaran ujian terkawal dan tidak sekali-kali dalam pengeluaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengabaikan Sijil SSL Tidak Dipercayai Apabila Menggunakan HttpClient dalam .NET Standard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!