简体   繁体   中英

DefaultNetworkCredentials or DefaultCredentials

Which one am I supposed to use when I need to supply a credential to a proxy (local or in Network)?

What's the exact difference between these two?

They are exactly the same thing, which you can confirm for yourself using a disassembler like Reflector. The only difference is that DefaultNetworkCredentials returns a NetworkCredentials object and and DefaultCredentials casts it to ICredentials . So you have access to more information with a NetworkCredentials object, but which of those you use supply to an object requiring an ICredentials instance makes no difference, since it's the same object instance: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials) returns true .

The difference between the two is very subtle. DefaultNetworkCredentials is the newer of the two (added with .NET 2.0), and the core difference is that under certain security conditions, it can expose more private information about the logged-in user to the application. For more information, try this blog post:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM