Unha solicitude WinHTTP autentícase no proxy, recibe o 401 dun sitio web e logo obtén outro 407 no seguinte envío. O proxy e o sitio web teñen estados de autenticación separados, e o camiño de reenvío debe conservar ambos.

O exemplo nativo de autenticación WinHTTP de Microsoft garda o esquema de proxy elixido nunha variable e volve aplicar a conta de proxy antes de cada WinHttpSendRequest unha vez seleccionado ese esquema.

  1. Envíe a solicitude e inspeccione a resposta.
  2. Ante un 407, consulte os esquemas ofrecidos e lembre o esquema de proxy elixido.
  3. Antes de reenviar, chame a WinHttpSetCredentials para WINHTTP_AUTH_TARGET_PROXY con ese esquema e esa conta.
  4. Ante un 401 do destino, obteña o seu esquema e estabeleza as súas credenciais de servidor conservando o estado de proxy lembrado para o seguinte envío.

O exemplo sinala especificamente a reautenticación tras un desafío do servidor ou unha redirección como motivo para volver aplicar as credenciais do proxy. Colocar a chamada só na primeira rama do 407 pode deixar outro camiño de reintento sen a configuración agardada.

Comprobe cada resultado da API e manteña limitados os fallos repetidos. O exemplo compacto de Microsoft segue o estado anterior, mentres que unha política de reintentos de produción tamén debería recoñecer unha secuencia alternante repetida.

Se o usuario fornece unha conta de substitución tras un fallo, actualice os valores que usa ese camiño de reenvío. WinHttpSetCredentials ten alcance de solicitude; non é un almacén de contrasinais de todo o proceso cuxo contido se substitúa para todas as solicitudes futuras.

Artigos relacionados