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?

Foi útil?

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:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top