Setelah permintaan WinHTTP menerima 407, gunakan WinHttpQueryAuthSchemes untuk memeriksa metode yang ditawarkan dan memilih salah satu yang didukung klien dan akun. Tetapkan kredensial pada permintaan itu:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

Argumen cadangan terakhir harus bernilai null. Periksa hasil Boolean dan, jika gagal, GetLastError. Keberhasilan berarti API menerima pengaturan tersebut, bukan bahwa proxy menerima proses masuk.

Kirim ulang melalui alur autentikasi yang terkendali dan periksa responsnya. Batasi percobaan ulang; aliran isi permintaan yang sudah terpakai harus dapat diputar ulang jika operasi diulang. Respons 401 dari tujuan memakai WINHTTP_AUTH_TARGET_SERVER, berbeda dari target proxy ini.

Kredensial ini berlaku untuk satu permintaan saja. WinHTTP tidak menjadikannya penyimpanan kredensial umum untuk permintaan berikutnya. Koneksi terautentikasi yang dipakai ulang dapat menyembunyikan tantangan lain untuk sementara, sehingga aplikasi tetap harus menangani tantangan di masa depan.

Pisahkan pemilihan proxy. String alamat yang membawa kredensial tidak menggantikan API handle permintaan ini, sama seperti berhasil mencapai titik akhir tidak menyelesaikan autentikasi.

Artikel terkait