2010-03-27 10 views

Respuesta

34

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.

+1

bueno, debería haber intentado el reflector antes de preguntar :) –

12

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:

http://blogs.msdn.com/buckh/archive/2004/07/28/199706.aspx