DefaultNetworkCredentials или DefaultCredentials - PullRequest
29 голосов
/ 27 марта 2010

Какой из них я должен использовать, когда мне нужно предоставить учетные данные для прокси (локально или в сети)?

Какая разница между этими двумя?

Ответы [ 2 ]

39 голосов
/ 27 марта 2010

Это абсолютно одно и то же, что вы можете подтвердить сами, используя дизассемблер, такой как Reflector. Единственное отличие состоит в том, что DefaultNetworkCredentials возвращает объект NetworkCredentials, а DefaultCredentials приводит его к ICredentials. Таким образом, у вас есть доступ к дополнительной информации с объектом NetworkCredentials, но какие из тех, которые вы используете, предоставляют объекту, для которого требуется экземпляр ICredentials, не имеет значения, поскольку это тот же экземпляр объекта: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials) возвращает true.

13 голосов
/ 27 марта 2010

Разница между ними очень тонкая. DefaultNetworkCredentials является более новым из двух (добавлено в .NET 2.0), и основное отличие состоит в том, что при определенных условиях безопасности он может предоставлять приложению больше личной информации о вошедшем в систему пользователе. Для получения дополнительной информации, попробуйте этот блог:

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

...