ຕອບສະໜອງຕໍ່ສິ່ງທ້າທາຍ proxy ຂອງ WinHTTP ເທິງ handle ຂອງຄຳຂໍ
ໃຊ້ WinHttpSetCredentials ກັບເປົ້າໝາຍການກວດສອບຕົວຕົນຂອງ proxy ແລະ ແຜນທີ່ຖືກສະເໜີທີ່ຮອງຮັບ ແລ້ວລອງສົ່ງຄຳຂໍຄືນຢ່າງຕັ້ງໃຈ.
ຫຼັງຈາກຄຳຂໍ WinHTTP ໄດ້ຮັບ 407, ໃຫ້ໃຊ້ WinHttpQueryAuthSchemes ເພື່ອກວດເບິ່ງວິທີການທີ່ຖືກສະເໜີ ແລະ ເລືອກວິທີໜຶ່ງທີ່ທັງລູກຂ່າຍ ແລະ ບັນຊີຮອງຮັບ. ຕັ້ງຂໍ້ມູນຢືນຢັນຕົວຕົນໃສ່ຄຳຂໍນັ້ນ:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
ອາກູເມັນສຳຮອງສຸດທ້າຍຕ້ອງເປັນ null. ກວດເບິ່ງຜົນລັບບູລີນ ແລະ ເມື່ອລົ້ມເຫຼວໃຫ້ກວດ GetLastError. ຄວາມສຳເລັດໝາຍຄວາມວ່າ API ຍອມຮັບການຕັ້ງຄ່າ, ບໍ່ແມ່ນວ່າ proxy ຍອມຮັບການເຂົ້າສູ່ລະບົບ.
ສົ່ງຄືນຜ່ານຂະບວນການກວດສອບຕົວຕົນທີ່ຄວບຄຸມໄດ້ ແລະ ກວດເບິ່ງການຕອບສະໜອງ. ຈຳກັດການລອງຄືນ; ຖ້າດຳເນີນການຊ້ຳ, ກະແສເນື້ອຄຳຂໍທີ່ຖືກໃຊ້ໄປແລ້ວຕ້ອງສາມາດຫຼິ້ນຄືນໄດ້. ການຕອບສະໜອງ 401 ຈາກປາຍທາງໃຊ້ WINHTTP_AUTH_TARGET_SERVER, ແຕກຕ່າງຈາກເປົ້າໝາຍ proxy ນີ້.
ຂໍ້ມູນຢືນຢັນຕົວຕົນເຫຼົ່ານີ້ໃຊ້ໄດ້ກັບຄຳຂໍດຽວເທົ່ານັ້ນ. WinHTTP ບໍ່ໄດ້ເຮັດໃຫ້ພວກມັນເປັນບ່ອນເກັບຂໍ້ມູນຢືນຢັນຕົວຕົນທົ່ວໄປສຳລັບຄຳຂໍຕໍ່ໄປ. ການເຊື່ອມຕໍ່ທີ່ຖືກຢືນຢັນແລ້ວ ແລະ ຖືກນຳມາໃຊ້ຊ້ຳອາດປິດບັງສິ່ງທ້າທາຍອື່ນຊົ່ວຄາວ, ດັ່ງນັ້ນແອັບຯຍັງຕ້ອງຈັດການສິ່ງທ້າທາຍໃນອະນາຄົດ.
ແຍກການເລືອກ proxy ໄວ້ຕ່າງຫາກ. ສາຍອັກສອນທີ່ຢູ່ທີ່ມີຂໍ້ມູນຢືນຢັນຕົວຕົນບໍ່ໄດ້ແທນ API handle ຂອງຄຳຂໍນີ້, ເໝືອນກັບການໄປຮອດປາຍທາງຢ່າງສຳເລັດບໍ່ໄດ້ເຮັດໃຫ້ການກວດສອບຕົວຕົນສຳເລັດ.