¿Cuál se supone que debo usar cuando necesito proporcionar una credencial a un proxy (local o en la red)?DefaultNetworkCredentials o DefaultCredentials
¿Cuál es la diferencia exacta entre estos dos?
¿Cuál se supone que debo usar cuando necesito proporcionar una credencial a un proxy (local o en la red)?DefaultNetworkCredentials o DefaultCredentials
¿Cuál es la diferencia exacta entre estos dos?
Son exactamente lo mismo, que se puede confirmar por sí mismo utilizando un desensamblador como reflector. La única diferencia es que DefaultNetworkCredentials
devuelve un objeto NetworkCredentials
y DefaultCredentials
lo arroja al ICredentials
. De modo que tiene acceso a más información con un objeto NetworkCredentials, pero cuál de los que utiliza suministra a un objeto que requiere una instancia ICredentials no hace diferencia, ya que es la misma instancia de objeto: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)
devuelve true
.
La diferencia entre los dos es muy sutil. DefaultNetworkCredentials es el más reciente de los dos (agregado con .NET 2.0), y la principal diferencia es que bajo ciertas condiciones de seguridad, puede exponer a la aplicación más información privada sobre el usuario que ha iniciado sesión. Para obtener más información, trate de esta entrada del blog:
bueno, debería haber intentado el reflector antes de preguntar :) –