2
我目前使用下面的一段代碼,即可獲得該網站的cookie:有沒有辦法使用WebClient從受密碼保護的位置而不是Httprequest獲取登錄cookie?
bool IsLoginSuccessful = false;
try
{
//Get Token and Authorization URL
HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create("https://updates.site.com/download");
wr.AllowAutoRedirect = true;
WebResponse response = wr.GetResponse();
response.Close();
string data = response.ResponseUri.OriginalString;
string ssoToken = data.Split('=')[1];
string authData = String.Format("ssousername={0}&password={1}&site2pstoretoken={2}", username, password, ssoToken);
string ssoServer = response.ResponseUri.Scheme + "://" + response.ResponseUri.Host;
string ssoAuthUrl = "sso/auth";
// now let's get our cookie for the download
byte[] dataBytes = Encoding.UTF8.GetBytes(authData);
string url = ssoServer + "/" + ssoAuthUrl;
wr = (HttpWebRequest)HttpWebRequest.Create(url);
//MyCookies is a CookieContainer I use to store the login cookies
wr.CookieContainer = MyCookies;
wr.Method = "POST";
wr.ContentLength = dataBytes.Length;
wr.ContentType = "application/x-www-form-urlencoded";
Stream dataStream = wr.GetRequestStream();
dataStream.Write(dataBytes, 0, dataBytes.Length);
dataStream.Close();
response = wr.GetResponse();
response.Close();
if (wr.CookieContainer.Count > 0)
{
IsLoginSuccessful = true;
}
}
我不知道是否有使用Web客戶端或者從它繼承的類的方式,來獲得餅乾代替使用HttpRequest?
看看[這個問題](http://stackoverflow.com/questions/1777221/using-cookiecontainer-with-webclient-class )。這應該會給你足夠的信息來幫助你一路走來。 –