在WebClient类中保持Session

string url = context.Request["url"];
WebClient MyWebClient = new WebClient();
// 获取或设置用于向Internet资源的请求进行身份验证的网络凭据
MyWebClient.Credentials = CredentialCache.DefaultCredentials;
byte[] pageData;
string pageHtml = string.Empty;

// 先进行登录,以便获取Session状态
string loginUrl = "http://www.xxx.com/login.html?username=1&password=1";
string loginStr = MyWebClient.DownloadString(loginUrl);
string header = MyWebClient.ResponseHeaders["Set-Cookie"];
MyWebClient.Headers.Add("Content-Type", "text/html");
MyWebClient.Headers.Add("Cookie", header);//在给服务器发送消息时加上这个Session值
MyWebClient.Headers.Add("Referer", loginUrl);

// 从指定网站下载数据
pageData = MyWebClient.DownloadData(url);
// 编码数据                             
pageHtml = Encoding.UTF8.GetString(pageData);
原文地址:https://www.cnblogs.com/jiyang2008/p/7647127.html