WinHTTP сұрауы проксиге аутентификация жасайды, сайттың 401 жауабын алады, кейін келесі жіберуде тағы 407 алады. Прокси мен сайттың аутентификация күйі бөлек, ал қайта жіберу жолы екеуін де сақтауы керек.

Microsoft-тың байырғы WinHTTP аутентификация үлгісі таңдалған прокси схемасын айнымалыда ұстайды және сол схема таңдалғаннан кейін әрбір WinHttpSendRequest алдында прокси тіркелгісін қайта қолданады.

  1. Сұрауды жіберіп, жауапты тексеріңіз.
  2. 407 үшін ұсынылған схемаларды сұрап, таңдалған прокси схемасын есте сақтаңыз.
  3. Қайта жібермес бұрын сол схема мен тіркелгімен WINHTTP_AUTH_TARGET_PROXY үшін WinHttpSetCredentials шақырыңыз.
  4. Мақсаттың 401 жауабы үшін оның схемасын алып, сервер тіркелгі деректерін орнатыңыз, әрі келесі жіберуге есте сақталған прокси күйін сақтап қалыңыз.

Үлгі сервер шақыруынан немесе қайта бағыттаудан кейінгі қайта аутентификацияны прокси тіркелгі деректерін қайта қолдану себебі ретінде арнайы атап өтеді. Шақыруды тек бірінші 407 тармағында орналастыру басқа қайта әрекет жолын күтілетін дайындықсыз қалдыруы мүмкін.

Әр API нәтижесін тексеріп, қайталанатын қателерді шектеңіз. Microsoft-тың ықшам үлгісі алдыңғы күйді бақылайды, ал өндірістік қайта әрекет саясаты қайталанатын ауыспалы реттілікті де тани білуі керек.

Егер қатеден кейін пайдаланушы алмастыратын тіркелгі берсе, сол қайта жіберу жолы қолданатын мәндерді жаңартыңыз. WinHttpSetCredentials сұрауға байланысты; ол болашақ барлық сұраулар үшін мазмұны алмастырылатын процестік құпиясөз қоймасы емес.

Қатысты мақалалар