DefaultNetworkCredentials或DefaultCredentials

时间:2010-03-27 09:23:00

标签: .net credentials defaultnetworkcredentials

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

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

2 个答案:

答案 0 :(得分:39)

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

答案 1 :(得分:13)

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

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