Кога WinHTTP наизменично менува 407 и 401
Зачувајте ја избраната состојба за автентикација на прокси и повторно применете ја пред повторните обиди, додека обработувате одделен предизвик од одредиштето.
WinHTTP барањето се автентицира на прокси, прима 401 од веб-страница, а потоа при следното испраќање добива уште еден 407. Прокси и веб-страницата имаат одделна состојба за автентикација, а патеката за повторно испраќање мора да ги задржи двете.
Примерот за автентикација на WinHTTP од Microsoft ја чува избраната прокси шема во променлива и повторно ја применува прокси сметката пред секое WinHttpSendRequest откако таа шема е избрана.
- Испратете го барањето и проверете го одговорот.
- За 407, прашајте ги понудените шеми и запомнете ја избраната прокси шема.
- Пред повторно испраќање, повикајте WinHttpSetCredentials за WINHTTP_AUTH_TARGET_PROXY со таа шема и сметка.
- За 401 од одредиштето, земете ја неговата шема и поставете ги неговите серверски акредитиви, задржувајќи ја запаметената прокси состојба за следното испраќање.
Примерот посебно наведува повторна автентикација по предизвик од серверот или пренасочување како причина за повторно применување на прокси акредитивите. Поставувањето на повикот само во првата 407 гранка може да остави друга патека за повторен обид без очекуваното поставување.
Проверете го секој резултат од API и ограничете ги повторените неуспеси. Компактниот пример на Microsoft ја следи претходната состојба, а производствената политика за повторни обиди треба да препознае и повторена наизменична низа.
Ако по неуспех корисникот достави замена сметка, ажурирајте ги вредностите што ги користи таа патека за повторно испраќање. WinHttpSetCredentials е врзана за барањето; таа не е процесно складиште за лозинки чија содржина се заменува за сите идни барања.