2012-03-11 97 views
1

任何幫助將非常感激。使用HttpWebRequest登錄失敗

我試圖以編程方式使用我的用戶名和密碼憑證登錄到www.penson.com

這樣做時使用資源管理器(Chrome瀏覽器,這件事情),登錄鏈接如下: https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LoginInProgress=YES

在使用這個鏈接登錄後,鏈接如下: https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LI=Y

從那裏我繼續與網站... 當然,每當我進入網站,包含不同的某種「Guid」,這個鏈接正在改變。現在

,我在做什麼在我的代碼如下:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
    "https://online.penson.com/Default.aspx?LoginInProgress=YES"); 
request.Credentials = new NetworkCredential(myUser, myPassword); 
request.CookieContainer = new CookieContainer(); 
request.AllowAutoRedirect = false; 
request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = 0; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Stream streamResponse = response.GetResponseStream(); 
StreamReader sr = new StreamReader(streamResponse); 
string result = sr.ReadToEnd(); 

「結果」的字符串看起來像這樣(我已編輯簡單的HTML顯示結構):

對象移動到HREF =「/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?LoginInProgress=YES」

從這個串我已經提取出的「HREF」子字符串,然後我有試圖創建本完整的地址另一個請求:

https://online.penson.com/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?LoginInProgress=YES

這一個不工作,並解析流響應表示我仍然在登錄網頁,並沒有實際繼續前進下一個網頁。

我試圖找出代碼有什麼問題。我想我的想法是獲取「Guid」並將其解析爲不準確的登錄地址。

有人能指點我一個特定的解決方案嗎?

+1

您是否向第二個請求發送了Cookie? – BrokenGlass 2012-03-11 15:55:02

+0

我想我沒有......我怎麼發送它們? – 2012-03-12 06:47:45

回答

0

使用FiddlerWireshark和比較全成請求(有一些瀏覽器製造),失敗的請求......然後除去模仿碼全成請求/添加任何需要的,很多時候Cookies是「元兇」之一在這種情況下 - 有時它是一個特定的推薦人或類似的...

除了編碼部分:檢查自動登錄是否被他們的條款/條件禁止!