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