WebProxy.UseDefaultCredentials može poništiti eksplicitne vjerodajnice
Izbjegnite poništavanje eksplicitnog .NET proxy računa naknadnim dodjeljivanjem UseDefaultCredentials.
Ovaj slijed izgleda eksplicitno, ali u .NET 10 završava bez ikakvih proxy vjerodajnica:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
U implementaciji WebProxy u .NET 10, postavljanje UseDefaultCredentials na false dodjeljuje null elementu Credentials. Postavljanje na true odabire CredentialCache.DefaultCredentials. Ta dva svojstva kontroliraju isti izbor računa.
Za račun specifičan za uslugu, dodijelite predviđene vjerodajnice bez naknadnog poništavanja:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Ako postojeći kod za postavljanje mora izričito isključiti zadane vjerodajnice, učinite to prije dodjeljivanja NetworkCredential. Njegov getter može biti false dok su eksplicitne vjerodajnice ispravno prisutne; false ne znači nužno da račun nije konfiguriran.
Priložite ovaj objekt rukovatelju koji izvršava zahtjev. Za integriranu Windows provjeru autentičnosti umjesto toga namjerno odaberite zadane vjerodajnice, koristeći primjenjivi identitet procesa.
Provjerite redoslijed inicijalizatora objekta i pomoćne metode za naknadne dodjele koje zamjenjuju predviđeni račun. Vežite ovu dijagnozu uz implementaciju WebProxy koja se koristi; istoimeno svojstvo na HTTP rukovatelju može upravljati drugim opsegom provjere autentičnosti.