2010-03-27 19 views

Répondre

34

Ils sont exactement la même chose, que vous pouvez confirmer par vous-même en utilisant un désassembleur comme réflecteur. La seule différence est que DefaultNetworkCredentials renvoie un objet NetworkCredentials et DefaultCredentials le convertit en ICredentials. Vous avez donc accès à plus d'informations avec un objet NetworkCredentials, mais lequel de ceux que vous utilisez fournir à un objet nécessitant une instance ICredentials ne fait pas de différence, puisqu'il s'agit de la même instance d'objet: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials) renvoie true.

+1

bon, j'aurais dû essayer réflecteur avant de demander :) –

12

La différence entre les deux est très subtile. DefaultNetworkCredentials est le plus récent des deux (ajouté avec .NET 2.0), et la différence principale est que dans certaines conditions de sécurité, il peut exposer plus d'informations privées sur l'utilisateur connecté à l'application. Pour plus d'informations, essayez ce blog:

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