默认网络凭据或默认凭据

36

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

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

2个回答

49

它们其实是相同的东西,您可以使用像Reflector这样的反汇编工具自行确认。唯一的区别在于DefaultNetworkCredentials返回一个NetworkCredentials对象,而DefaultCredentials将其转换为ICredentials类型。因此,使用NetworkCredentials对象可以访问更多信息,但对于需要ICredentials实例的对象来说,无论您使用哪一个提供都没有区别,因为它是同一个对象实例:object.ReferenceEquals(CredentialCache.DefaultCredentials, CredentialCache.DefaultNetworkCredentials)返回true


15

这两者之间的区别非常微妙。DefaultNetworkCredentials是两者中较新的版本(添加于.NET 2.0),其核心区别在于,在特定安全条件下,它可以向应用程序公开有关已登录用户更多的私人信息。欲了解更多信息,请参阅此博客文章:

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


链接已经失效。我相信这是所提到的博客文章:https://devblogs.microsoft.com/buckh/authentication-in-web-services-with-httpwebrequest/ - gonadarian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接