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