当我需要为代理(本地或网络中的代理)提供凭据时,应该使用哪个?
这两者之间的确切区别是什么?
当我需要为代理(本地或网络中的代理)提供凭据时,应该使用哪个?
这两者之间的确切区别是什么?
它们其实是相同的东西,您可以使用像Reflector这样的反汇编工具自行确认。唯一的区别在于DefaultNetworkCredentials
返回一个NetworkCredentials
对象,而DefaultCredentials
将其转换为ICredentials
类型。因此,使用NetworkCredentials
对象可以访问更多信息,但对于需要ICredentials
实例的对象来说,无论您使用哪一个提供都没有区别,因为它是同一个对象实例:object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)
返回true
。
这两者之间的区别非常微妙。DefaultNetworkCredentials是两者中较新的版本(添加于.NET 2.0),其核心区别在于,在特定安全条件下,它可以向应用程序公开有关已登录用户更多的私人信息。欲了解更多信息,请参阅此博客文章: