【发布时间】:2013-06-26 14:04:58
【问题描述】:
我正在使用 C# .Net 在 Visual Studio 2010 中编写程序。
程序会访问网站的多个部分(不同的url),我使用HttpWebRequest和NetworkCredential来设置用户名和密码。
现在,每次我发送请求时,我都必须设置凭据。有没有办法在整个过程中只设置一次凭据?
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