WinHTTP 407 ile 401 arasında gidip geldiğinde
Seçilen proxy kimlik doğrulama durumunu koruyun ve yeniden denemelerden önce yeniden uygulayın; hedefin ayrı meydan okumasını ayrıca ele alın.
Bir WinHTTP isteği proxy'de kimlik doğrular, sitenin 401 yanıtını alır ve sonraki gönderimde bir 407 daha alır. Proxy ile site ayrı kimlik doğrulama durumlarına sahiptir ve yeniden gönderme yolu her ikisini de saklamalıdır.
Microsoft'un yerel WinHTTP kimlik doğrulama örneği, seçilen proxy şemasını bir değişkende tutar ve bu şema seçildikten sonra her WinHttpSendRequest öncesinde proxy hesabını yeniden uygular.
- İsteği gönderin ve yanıtı inceleyin.
- 407 için sunulan şemaları sorgulayın ve seçilen proxy şemasını hatırlayın.
- Yeniden göndermeden önce, o şema ve hesapla WINHTTP_AUTH_TARGET_PROXY için WinHttpSetCredentials çağırın.
- Hedefin 401 yanıtı için şemasını alın ve sunucu kimlik bilgilerini ayarlayın; hatırlanan proxy durumunu sonraki gönderim için koruyun.
Örnek, sunucu meydan okumasından veya yönlendirmeden sonra yeniden kimlik doğrulamayı, proxy kimlik bilgilerinin yeniden uygulanmasının nedeni olarak özellikle belirtir. Çağrıyı yalnızca ilk 407 dalına koymak, başka bir yeniden deneme yolunu beklenen kurulumdan yoksun bırakabilir.
Her API sonucunu denetleyin ve yinelenen hataları sınırlı tutun. Microsoft'un kısa örneği önceki durumu izler; üretim yeniden deneme ilkesi de yinelenen değişimli diziyi tanımalıdır.
Kullanıcı bir hatadan sonra yedek hesap verirse, o yeniden gönderme yolunun kullandığı değerleri güncelleyin. WinHttpSetCredentials istek kapsamlıdır; içeriği tüm gelecek istekler için değiştirilen süreç geneli bir parola deposu değildir.