Запыт WinHTTP аўтэнтыфікуецца на проксі, атрымлівае 401 ад сайта, а затым пры наступнай адпраўцы атрымлівае чарговы 407. Проксі і сайт маюць асобны стан аўтэнтыфікацыі, і шлях паўторнай адпраўкі павінен захоўваць абодва.

Узор аўтэнтыфікацыі WinHTTP ад Microsoft захоўвае выбраную схему проксі ў зменнай і паўторна ўжывае ўліковы запіс проксі перад кожным WinHttpSendRequest пасля выбару гэтай схемы.

  1. Адпраўце запыт і праверце адказ.
  2. Для 407 запытайце прапанаваныя схемы і запомніце выбраную схему проксі.
  3. Перад паўторнай адпраўкай выклічце WinHttpSetCredentials для WINHTTP_AUTH_TARGET_PROXY з гэтай схемай і ўліковым запісам.
  4. Для 401 ад прызначэння атрымайце яго схему і задайце ўліковыя даныя сервера, захоўваючы запомнены стан проксі для наступнай адпраўкі.

Узор асобна адзначае паўторную аўтэнтыфікацыю пасля запыту сервера або перанакіравання як прычыну паўторнага ўжывання ўліковых даных проксі. Размяшчэнне выкліку толькі ў першай галіне 407 можа пакінуць іншы шлях паўторнай спробы без чаканай налады.

Правярайце кожны вынік API і абмяжоўвайце паўторныя збоі. Кампактны ўзор Microsoft адсочвае папярэдні статус, а прамысловая палітыка паўторных спроб павінна таксама распазнаваць паўторную чаргаваную паслядоўнасць.

Калі пасля збою карыстальнік дае заменны ўліковы запіс, абнавіце значэнні, якія выкарыстоўвае гэты шлях паўторнай адпраўкі. WinHttpSetCredentials прывязаны да запыту; гэта не працэснае сховішча пароляў, змест якога замяняецца для ўсіх будучых запытаў.

Падобныя артыкулы