.net - DefaultNetworkCredentials o DefaultCredentials
(2)
¿Cuál se supone que debo usar cuando necesito proporcionar una credencial para un proxy (local o en red)?
¿Cuál es la diferencia exacta entre estos dos?
La diferencia entre los dos es muy sutil. DefaultNetworkCredentials es la más nueva de las dos (agregada con .NET 2.0), y la diferencia principal es que, bajo ciertas condiciones de seguridad, puede exponer más información privada sobre el usuario que ha iniciado sesión a la aplicación. Para más información, prueba este blog:
Son exactamente lo mismo, lo que puede confirmarse utilizando un desensamblador como Reflector. La única diferencia es que DefaultNetworkCredentials
devuelve un objeto NetworkCredentials
y DefaultCredentials
lo ICredentials
en ICredentials
. Entonces, tiene acceso a más información con un objeto NetworkCredentials, pero cuál de los que usa suministra un objeto que requiere una instancia de ICredentials no hace ninguna diferencia, ya que es la misma instancia de objeto: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)
devuelve true