35

当我需要向代理(本地或网络中)提供凭据时,我应该使用哪一个?

这两者之间的确切区别是什么?

4

2 回答 2

48

它们是完全一样的,你可以使用像 Reflector 这样的反汇编器自己确认。唯一的区别是DefaultNetworkCredentials返回一个NetworkCredentials对象并将其DefaultCredentials强制转换为ICredentials. 因此,您可以使用 NetworkCredentials 对象访问更多信息,但是您使用哪些提供给需要 ICredentials 实例的对象没有区别,因为它是同一个对象实例:object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)返回true

于 2010-03-27T09:33:25.037 回答
15

两者的区别非常微妙。DefaultNetworkCredentials 是两者中较新的一个(在 .NET 2.0 中添加),核心区别在于在一定的安全条件下,它可以向应用程序公开更多关于登录用户的隐私信息。有关更多信息,请尝试此博客文章:

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

于 2010-03-27T09:32:08.077 回答