DefaultNetworkCredentials ou DefaultCredentials
-
22-09-2019 - |
Pergunta
Qual eu devo usar quando preciso fornecer uma credencial a um proxy (local ou na rede)?
Qual é a diferença exata entre esses dois?
Solução
Eles são exatamente a mesma coisa, que você pode confirmar para si mesmo usando um desmontador como o refletor. A única diferença é que DefaultNetworkCredentials
retorna a NetworkCredentials
objeto e e DefaultCredentials
lança para ICredentials
. Portanto, você tem acesso a mais informações com um objeto NetworkCredentials, mas qual daqueles que você usa para um objeto que requer uma instância do icredencials não faz diferença, pois é a mesma instância de objeto: object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)
retorna true
.
Outras dicas
A diferença entre os dois é muito sutil. DefaultNetworkCredentials é o mais novo dos dois (adicionados ao .NET 2.0), e a diferença central é que, sob certas condições de segurança, ele pode expor mais informações privadas sobre o usuário logado ao aplicativo. Para mais informações, tente esta postagem no blog: