【问题标题】:How can i get IE credentials to use in my code?如何获取 IE 凭据以在我的代码中使用?
【发布时间】:2009-04-15 14:59:05
【问题描述】:

我目前正在使用SpicIE 开发一个IE 插件。

这个插件会做一些类似于 MSDN 上发布的示例的网页抓取:

WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");

request.Credentials = CredentialCache.DefaultCredentials;

HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

Stream dataStream = response.GetResponseStream ();

StreamReader reader = new StreamReader (dataStream);

string responseFromServer = reader.ReadToEnd ();

reader.Close ();
dataStream.Close ();
response.Close ();

但是,当我运行此代码时,我收到以下错误消息:

远程服务器返回错误:(407) 需要代理身份验证。

我目前在代理服务器后面工作,并使用 NetworkCredential 类手动提供我的网络凭据

request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");

但我仍然收到同样的错误。

即使我的问题解决了,我也知道该插件的某些用户将在代理服务器后面。

我想知道如何获取 IE 凭据并在我的代码中使用它来将其分配给 request.Credentials

可能是这样的:

request.Credentials = IE.DefaultCredentials;

【问题讨论】:

    标签: c# screen-scraping webrequest


    【解决方案1】:

    您正在为 站点 设置凭据,但您需要 代理 的凭据。

    设置request.Proxy.Credentials

    (另外,对于响应/流/阅读器,请使用using 语句,而不是手动关闭它们,否则在抛出异常时它们会泄漏。)

    编辑:例如,也使用代理的默认凭据:

    request.Proxy.Credentials = CredentialCache.DefaultCredentials;
    

    【讨论】:

    • 谢谢,我会尝试的,但对我来说真正重要的是如何在我的代码中使用 IE 凭据。你能在这方面帮助我吗?
    • 嗯,是的 - 设置 request.Proxy.Credentials = CredentialCache.DefaultCredentials
    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2014-12-24
    • 2011-03-29
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多