Quan WinHTTP alterna entre 407 i 401
Conserveu l'estat d'autenticació del proxy triat i torneu a aplicar-lo abans de reintentar, tot gestionant un desafiament de destinació a part.
Una sol·licitud WinHTTP s'autentica al proxy, rep el 401 d'un lloc web i després torna a rebre un 407 en el següent enviament. El proxy i el lloc web tenen estats d'autenticació separats, i el camí de reenviament ha de conservar tots dos.
L'exemple d'autenticació WinHTTP natiu de Microsoft desa l'esquema de proxy triat en una variable i torna a aplicar el compte de proxy abans de cada WinHttpSendRequest un cop triat aquest esquema.
- Envieu la sol·licitud i reviseu la resposta.
- Per a un 407, consulteu els esquemes oferts i recordeu l'esquema de proxy triat.
- Abans de reenviar, crideu WinHttpSetCredentials per a WINHTTP_AUTH_TARGET_PROXY amb aquest esquema i compte.
- Per a un 401 de destinació, obteniu-ne l'esquema i definiu-ne les credencials del servidor tot conservant l'estat de proxy recordat per al proper enviament.
L'exemple assenyala específicament la reautenticació després d'un desafiament del servidor o d'una redirecció com a motiu per tornar a aplicar les credencials del proxy. Col·locar la crida només a la primera branca del 407 pot deixar un altre camí de reintent sense la configuració esperada.
Comproveu cada resultat de l'API i limiteu les fallades repetides. L'exemple compacte de Microsoft fa un seguiment de l'estat anterior, mentre que una política de reintents de producció també hauria de reconèixer una seqüència alternant repetida.
Si l'usuari proporciona un compte de substitució després d'una fallada, actualitzeu els valors que fa servir aquest camí de reenviament. WinHttpSetCredentials té abast de sol·licitud; no és un magatzem de contrasenyes de tot el procés el contingut del qual es substitueixi per a totes les sol·licituds futures.