Ta sekwencja wygląda jawnie, ale w .NET 10 kończy się bez żadnych poświadczeń proxy:

proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;

W implementacji WebProxy w .NET 10 ustawienie UseDefaultCredentials na false przypisuje null do Credentials. Ustawienie na true wybiera CredentialCache.DefaultCredentials. Obie właściwości kontrolują ten sam wybór konta.

Dla konta właściwego dla usługi przypisz zamierzone poświadczenia bez późniejszego resetowania:

var proxy = new WebProxy("http://proxy.example.net:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};

Jeśli istniejący kod konfiguracji musi jawnie wyłączyć domyślne poświadczenia, zrób to przed przypisaniem NetworkCredential. Jego getter może być false, mimo że jawne poświadczenia są poprawnie obecne; false niekoniecznie oznacza, że żadne konto nie jest skonfigurowane.

Dołącz ten obiekt do programu obsługi, który wykonuje żądanie. W przypadku zintegrowanego uwierzytelniania Windows wybierz świadomie domyślne poświadczenia, używając odpowiedniej tożsamości procesu.

Sprawdź kolejność inicjatora obiektu i metody pomocnicze pod kątem późniejszych przypisań, które zastępują zamierzone konto. Powiąż tę diagnozę z używaną implementacją WebProxy; właściwość o tej samej nazwie w programie obsługi HTTP może sterować innym zakresem uwierzytelniania.

Powiązane artykuły