WebProxy.UseDefaultCredentials може да ги ресетира експлицитните акредитиви
Избегнете ресетирање на експлицитна .NET прокси сметка со подоцнежно доделување на UseDefaultCredentials.
Оваа секвенца изгледа експлицитна, но во .NET 10 завршува без никакви прокси акредитиви:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
Во имплементацијата на WebProxy во .NET 10, поставувањето на UseDefaultCredentials на false доделува null на Credentials. Поставувањето на true го избира CredentialCache.DefaultCredentials. Двете својства го контролираат истиот избор на сметка.
За сметка специфична за услуга, доделете ги предвидените акредитиви без подоцнежно ресетирање:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Ако постојниот код за поставување мора експлицитно да ги исклучи стандардните акредитиви, направете го тоа пред да го доделите NetworkCredential. Неговиот getter може да биде false додека експлицитните акредитиви се правилно присутни; false не значи нужно дека не е конфигурирана сметка.
Прикачете го овој објект на ракувачот што го извршува барањето. За интегрирано Windows автентикација, наместо тоа намерно изберете стандардни акредитиви, користејќи го применливиот идентитет на процесот.
Проверете го редоследот на иницијализаторот на објектот и помошните методи за подоцнежни доделувања што ја заменуваат предвидената сметка. Врзете ја оваа дијагноза со имплементацијата на WebProxy што се користи; истоимено својство на HTTP ракувач може да управува со поинаков опсег на автентикација.