【问题标题】:C# Set Credential Only Once For Multiple RequestsC# 只为多个请求设置一次凭据
【发布时间】:2013-06-26 14:04:58
【问题描述】:

我正在使用 C# .Net 在 Visual Studio 2010 中编写程序。

程序会访问网站的多个部分(不同的url),我使用HttpWebRequestNetworkCredential来设置用户名和密码。

现在,每次我发送请求时,我都必须设置凭据。有没有办法在整个过程中只设置一次凭据?

public void setCredential(string url)
{    
    //set username and password    
    //and get response    
}

public void Main()    
{ 
    string[] URLs= { url1, url2, url3 };    
    foreach (string url in URLs)    
    {    
        setCredential(url);    
    }
}

就像我提到的那样,通过这样做,每次我转到一个新的网址时,我都必须设置凭据,这有时会使其变慢。

我尝试在 foreach 循环之外设置凭据,但无法获得 url2 和 url3 的响应。

我想知道是否有更好的方法来做到这一点?

-- 上午 10:26 编辑--

对不起,如果我不清楚。

我的意思是每次我尝试访问一个 url 时,我都必须将用户名和密码重新发送到服务器。

所以对于示例代码,我必须为 3 个不同的 url 发送用户名和密码 3 次。

我想知道我是否可以只发送一次用户名和密码并访问所有 3 个不同的 url。

ps。可以使用相同的用户名和密码访问所有 3 个网址。

【问题讨论】:

  • 类变量会有所帮助。
  • @David 你能解释一下如何使用类变量吗?据我了解,每次调用不同的 url 时,我仍然需要将用户名和密码发送到服务器。
  • 您可以使用 cookie 或会话来保存凭据吗?
  • 不,该程序是可执行文件,它是独立的,所以我认为我不能将凭据保存在 cookie 中。访问 url 就像从那个 url 下载文件,所以想法是会有很多 url,用户可以运行 exe 并让它继续运行,当所有文件下载时程序终止。

标签: c# .net httprequest credentials networkcredentials


【解决方案1】:

Passing NetworkCredential to HttpWebRequest in C# from ASP.Net Page

此链接显示 NetworkCache,这可能是您的解决方案。

【讨论】:

  • 看起来 CredentialCache 类是一个请求的多个凭据,但我正在为多个请求(url)寻找一个凭据。或者它也这样工作??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
相关资源
最近更新 更多