2010-03-27 30 views

回答

34

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

+1

不错的一个,我应该在尝试之前尝试过反射器:) – 2010-03-27 09:42:50

12

两者之间的差异非常微妙。 DefaultNetworkCredentials是这两者中的新成员(添加了.NET 2.0),核心的区别在于,在某些安全条件下,它可以将更多关于登录用户的私有信息公开给应用程序。欲了解更多信息,请这个博客帖子:

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

相关问题