【问题标题】:NetworkCredential, CredentialCache, ICredentials All return NothingNetworkCredential、CredentialCache、ICredentials 全部返回 Nothing
【发布时间】:2011-07-14 10:20:22
【问题描述】:

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

令人讨厌的是,该应用程序在我的机器上运行时运行良好,已发布并通过 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;

或 字符串 url = "http://www.blah.com"; uri uri = 新的 uri(url); ICredentials 凭据 = CredentialCache.DefaultCredentials; NetworkCredential credential = credentials.GetCredential(uri, "Basic");

NetworkCredential credential = CredentialCache.DefaultNetworkCredentials;

进入

request.Proxy.Credentials = CredentialCache.DefaultCredentials;

request.Credentials = credential

我也试过了

.DefaultCredentials

还有

.DefaultNetworkCredentials

【问题讨论】:

    标签: c# .net winforms networkcredentials defaultnetworkcredentials


    【解决方案1】:

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

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

    【讨论】:

    • 我查了一下,显然每个人都和我有同样的权利。他们需要使用的只是用户名/密码/域的详细信息,我认为凭证的事情会解决....
    • 如果您手动设置凭据而不是使用默认用户凭据,会发生什么情况?
    • 嗯,是的,我也尝试过,但它仍然给出了我在其他人计算机上的问题中描述的 407 错误,但在我的计算机上很好......
    • 您能发布您的代码吗?试试下面的代码:stackoverflow.com/questions/6676878/winform-security-context
    • 按要求。我昨天在那里尝试了一些答案,不过谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2011-05-07
    相关资源
    最近更新 更多