WebProxy.UseDefaultCredentials kann explizite Anmeldeinformationen zurücksetzen
Vermeiden Sie das Zurücksetzen eines expliziten .NET-Proxykontos durch eine spätere Zuweisung von UseDefaultCredentials.
Diese Reihenfolge wirkt explizit, endet in .NET 10 aber ohne Proxy-Anmeldeinformationen:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
In der WebProxy-Implementierung von .NET 10 weist das Setzen von UseDefaultCredentials auf false den Wert null zu Credentials zu. Das Setzen auf true wählt CredentialCache.DefaultCredentials. Beide Eigenschaften steuern dieselbe Kontowahl.
Für ein dienstspezifisches Konto weisen Sie die gewünschten Anmeldeinformationen ohne späteres Zurücksetzen zu:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Muss vorhandener Einrichtungscode Standardanmeldeinformationen ausdrücklich deaktivieren, tun Sie das vor der Zuweisung von NetworkCredential. Dessen Getter kann false sein, während explizite Anmeldeinformationen korrekt vorhanden sind; false bedeutet nicht zwangsläufig, dass kein Konto konfiguriert ist.
Hängen Sie dieses Objekt an den Handler, der die Anforderung ausführt. Für die integrierte Windows-Authentifizierung wählen Sie stattdessen bewusst Standardanmeldeinformationen und verwenden die zutreffende Identität des Prozesses.
Prüfen Sie die Reihenfolge des Objektinitialisierers und Hilfsmethoden auf spätere Zuweisungen, die das gewünschte Konto ersetzen. Binden Sie diese Diagnose an die verwendete WebProxy-Implementierung; eine gleichnamige Eigenschaft an einem HTTP-Handler kann einen anderen Authentifizierungsbereich steuern.