2010-05-27 645 views
0

是否有方法以編程方式獲取.ASPXAUTH值。以編程方式獲取.ASPXAUTH cookie值

示例我使用自己的憑據(POST)登錄到網站,然後閱讀響應......它不會返回CookieContainer中用於跟蹤會話的.APSXAUTH。

任何人都有線索我怎麼能得到它,並隨後獲取和發佈它?

[編輯]這就是我做的是更具體:

  • 發送一個HTTP GET到的頁面。讀取像_VIEWSTATE等值
  • 發送HTTP POST到登錄頁面。它包含登錄信息。
  • 服務器向某個默認頁面發送302響應(重定向)。表單認證Cookie應該包含在內,但事實並非如此。

所以我在想,有可能是一個更好的方法比這個跟蹤會話:如果你想在一個編程登錄

CookieContainer _cookieJar = new CookieContainer(); 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url); 
request.CookieContainer = _cookieJar; 
+1

它應該在那裏。你可以發佈你的代碼,以便我們看到嗎? – David 2010-05-27 13:20:02

+0

你說的沒錯,我只是沒有正確閱讀答案。我創建了另一個請求,而我應該剛剛閱讀request.GetResponse()的響應。我改變了那個和繁榮,那裏是... 但是現在一切都被編碼了......我看不到響應文本中的任何東西。 – TheBoyan 2010-05-28 11:10:41

+0

第二個問題的答案(即一切編碼)我發現在以下線程: http://stackoverflow.com/questions/678547/does-nets-httpwebresponse-uncompress-automatically-gziped-and-deflated-response – TheBoyan 2010-05-28 12:20:09

回答

1

所以總結答案通過您自己的應用程序,基於表單的身份驗證網站確保您遵循跟蹤cookie的步驟。

首先創建一個初始GET請求,然後做後續POST請求,將做postback.The請求和響應應該以這種方式制定:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url); 
request.CookieContainer = _cookieJar; 
HttpWebResponse httpsResponse = (HttpWebResponse)request.GetResponse(); 

CookieContainer類處理如餅乾預期。

如果你的反應是用gzip編碼只包含以下行:

request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 

你叫request.GetResponse()

之前希望這可以幫助別人那裏。