当我需要向代理(本地或网络中)提供凭据时,我应该使用哪一个?
这两者之间的确切区别是什么?
它们是完全一样的,你可以使用像 Reflector 这样的反汇编器自己确认。唯一的区别是DefaultNetworkCredentials
返回一个NetworkCredentials
对象并将其DefaultCredentials
强制转换为ICredentials
. 因此,您可以使用 NetworkCredentials 对象访问更多信息,但是您使用哪些提供给需要 ICredentials 实例的对象没有区别,因为它是同一个对象实例:object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)
返回true
。
两者的区别非常微妙。DefaultNetworkCredentials 是两者中较新的一个(在 .NET 2.0 中添加),核心区别在于在一定的安全条件下,它可以向应用程序公开更多关于登录用户的隐私信息。有关更多信息,请尝试此博客文章: