Lequel dois-je utiliser lorsque j'ai besoin de fournir un justificatif à un proxy (local ou en réseau)?DefaultNetworkCredentials ou DefaultCredentials
Quelle est la différence exacte entre les deux?
Lequel dois-je utiliser lorsque j'ai besoin de fournir un justificatif à un proxy (local ou en réseau)?DefaultNetworkCredentials ou DefaultCredentials
Quelle est la différence exacte entre les deux?
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
.
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:
bon, j'aurais dû essayer réflecteur avant de demander :) –