WebProxy.UseDefaultCredentials kan expliciete referenties resetten
Voorkom dat een expliciet .NET-proxyaccount wordt gereset door UseDefaultCredentials daarna toe te wijzen.
Deze volgorde lijkt expliciet, maar in .NET 10 eindigt ze zonder enige proxyreferentie:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
In de WebProxy-implementatie van .NET 10 wijst het instellen van UseDefaultCredentials op false null toe aan Credentials. Instellen op true selecteert CredentialCache.DefaultCredentials. De twee eigenschappen beheren dezelfde accountkeuze.
Wijs voor een dienstspecifiek account de bedoelde referentie toe zonder latere reset:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Als bestaande installatiecode de standaardreferenties expliciet moet uitschakelen, doe dat dan vóór het toewijzen van NetworkCredential. De getter kan false zijn terwijl een expliciete referentie correct aanwezig is; false betekent niet noodzakelijk dat er geen account is geconfigureerd.
Koppel dit object aan de handler die het verzoek uitvoert. Kies voor geïntegreerde Windows-verificatie in plaats daarvan bewust de standaardreferenties, met de toepasselijke identiteit van het proces.
Controleer de volgorde van de objectinitialisatie en hulpmethoden op latere toewijzingen die het bedoelde account vervangen. Koppel deze diagnose aan de gebruikte WebProxy-implementatie; een eigenschap met dezelfde naam op een HTTP-handler kan een ander verificatiebereik beheren.