2010-03-27 6 views

Antwort

34

Sie sind genau die gleiche Sache, die Sie für sich selbst mit einem Disassembler wie Reflector bestätigen können. Der einzige Unterschied ist, dass DefaultNetworkCredentials ein Objekt NetworkCredentials zurückgibt und DefaultCredentials es auf ICredentials zurückgibt. Sie haben also Zugriff auf weitere Informationen mit einem NetworkCredentials-Objekt, aber welche von denen, die Sie für ein Objekt verwenden, das eine ICredentials-Instanz benötigt, macht keinen Unterschied, da es dieselbe Objektinstanz ist: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials) gibt true zurück.

+1

netter, ich hätte Reflektor vor der Frage ausprobieren sollen :) –

12

Der Unterschied zwischen den beiden ist sehr subtil. DefaultNetworkCredentials ist das neuere von beiden (hinzugefügt mit .NET 2.0), und der Hauptunterschied besteht darin, dass es unter bestimmten Sicherheitsbedingungen mehr privaten Informationen über den angemeldeten Benutzer der Anwendung verfügbar machen kann. Für weitere Informationen, versuchen, dieses Blog-Post:

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