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 руковаоцу може управљати другим опсегом провере идентитета.