Kredensial eksplisit untuk .NET WebProxy
Tetapkan kredensial secara eksplisit saat membuat .NET WebProxy, bukan mengasumsikan URI yang membawa kredensial akan mengisi akunnya.
URI dapat memuat username:password sebelum host-nya. Itu tidak berarti setiap API .NET yang menerima URI tersebut menyalin info pengguna ke objek autentikasi.
Saat membuat WebProxy secara langsung, buat penetapan kredensial eksplisit:
var proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};Variabel endpoint dan akun bersifat ilustratif. Ini menjaga alamat tujuan, alamat proxy, dan akun proxy tetap terpisah.
Jika format masukan menyediakan URL yang membawa kredensial, urai info penggunanya dengan sengaja. Pertahankan kata sandi yang memuat titik dua dengan memisahkan hanya pada pemisah kredensial, dan dekodekan komponen yang dikodekan pada tahap yang tepat. Hindari mencetak URL asli saat mendiagnosis parser tersebut.
URL proxy yang berfungsi sebagai pengaturan lingkungan bisa berperilaku berbeda saat diteruskan ke konstruktor lain. Inisialisasi proxy lingkungan memiliki logika penguraiannya sendiri; itu bukan janji bahwa setiap konstruktor memakai bidang yang sama.
Terakhir, tetapkan objek proxy yang dikonfigurasi pada handler yang menjalankan permintaan. Kredensial yang benar pada WebProxy yang tidak dipakai tidak dapat memengaruhi koneksi.