WebProxy.UseDefaultCredentials pot restablir una credencial explícita
Eviteu restablir un compte de proxy .NET explícit assignant UseDefaultCredentials després.
Aquesta seqüència sembla explícita, però a .NET 10 acaba sense cap credencial de proxy:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
A la implementació de WebProxy de .NET 10, assignar false a UseDefaultCredentials assigna null a Credentials. Assignar-hi true selecciona CredentialCache.DefaultCredentials. Les dues propietats controlen la mateixa tria de compte.
Per a un compte específic d'un servei, assigneu la credencial prevista sense un restabliment posterior:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Si el codi de configuració existent ha de desactivar explícitament les credencials predeterminades, feu-ho abans d'assignar NetworkCredential. El seu getter pot ser false mentre hi ha correctament una credencial explícita; false no vol dir necessàriament que no hi hagi cap compte configurat.
Adjunteu aquest objecte al controlador que fa la sol·licitud. Per a l'autenticació integrada de Windows, trieu deliberadament les credencials predeterminades, fent servir la identitat aplicable del procés.
Reviseu l'ordre de l'inicialitzador d'objectes i els mètodes auxiliars per si hi ha assignacions posteriors que substitueixin el compte previst. Lligueu aquest diagnòstic a la implementació de WebProxy en ús; una propietat amb el mateix nom en un controlador HTTP pot regir un àmbit d'autenticació diferent.