NetworkCredential,CredentialCache,ICredentials全部返回Nothing

时间:2011-07-14 10:20:22

标签: c# .net winforms networkcredentials defaultnetworkcredentials

我有一个Windows窗体应用程序,当我尝试从Google服务器返回一个JSON字符串时,它会一直返回407 Proxy Server错误。我被引导相信我需要做的就是通过将WebRequest凭据设置为“DefaultCredentials”或“DefaultNetworkCredentials”来正确设置安全上下文。但是,我使用的所有方法(见主题tittle)总是返回“”。

令人讨厌的是,在我的机器上运行,发布并通过VS 2008时,该应用程序运行正常,但当其他用户尝试时,它会生成以下错误:

System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.

在System.Net.HttpWebRequest.GetResponse()

任何一个想法,在我去秃头之前!

提前致谢

C

编辑:根据要求提供一些代码。我尝试了以下几种变体,似乎都没有效果。

request.Proxy.Credentials = CredentialCache.DefaultCredentials;
HttpWebRequest.Proxy.Credentials = CredentialCache.DefaultCredentials;

OR     string url =“http://www.blah.com”;     Uri uri = new Uri(url);     ICredentials credentials = CredentialCache.DefaultCredentials;     NetworkCredential credential = credentials.GetCredential(uri,“Basic”);

OR

NetworkCredential credential = CredentialCache.DefaultNetworkCredentials;

INTO

request.Proxy.Credentials = CredentialCache.DefaultCredentials;

OR

request.Credentials = credential

我也试过两次

.DefaultCredentials

并且

.DefaultNetworkCredentials

1 个答案:

答案 0 :(得分:0)

DefaultNetworkCredentials返回的凭据表示运行应用程序的当前安全上下文的身份验证凭据。对于客户端应用程序,这些通常是Windows凭据(用户名,密码和域)。

运行该应用程序的用户可能没有代理权限