2011-01-05 86 views
6

我將解釋該方案啓動:編程設置cookies

我在計算機A內的IE瀏覽器我有一個插件,這樣我就可以訪問該文檔對象的IE瀏覽器,所以我可以在給定的時間內抓取cookie。

我想那個cookie轉移到一個新的瀏覽器在不同的計算機B.

爲了啓動瀏覽器在新的計算機BI使用InternetExplorer對象,我可以使用對象實例控制瀏覽器,但我不知道如何將第一臺計算機A的cookie「注入」到新創建的IE瀏覽器中。

我試過兩種方法。

  • 首先,我開始嘗試使用WinInet API InternetSetCookie瀏覽器之前寫的cookie。

  • 其次,我試圖攔截在BeforeNavigate2事件和設置cookie在HTTP請求的報頭中。

但無那些已經工作:(

是否有可能設置cookie在新的Internet Explorer之前導航到一個網站,因此能夠維持使sesion用戶不得不在他以前的計算機

謝謝:)

UPDATE:我仍然有這個問題,並沒有使用Wireshark的其他一些調查。

在BeforeNavigate2的情況下,IExplore簡單地忽略標題中的「Cookie:」值。

在InternetSetCookie的情況下,它似乎工作正常。它創建了常規IExplore導航創建的相同文件,但是當您轉到該頁面時,IE會忽略包含該cookie的文件。

我使用寫入cookie中的代碼是:

string cookie = "COOKIEVALUES"; 
InternetSetCookie("http://www.facebook.com/", "", cookie+";expires=Sat, 08-Jan-2014 00:00:00 GMT"); 

回答

3

InternetSetCookie()應該是這樣做的正確方法。你確認你設置了正確的值嗎?你使用的是規範化的網址嗎?你是否指定了到期日期?弄錯網址(我不確定是否跟蹤/不管是否有問題)會有明顯的後果,並且如果您沒有設置過期日期,cookie僅保存在當前進程的內存中。

+0

我對此並不完全確定。我需要檢查存儲的Cookie如何工作。但是,我試圖在計算機中複製Cookie文件,但無法正常工作:-S – HyLian 2011-01-05 22:20:26

+0

我無法使用此方法。首先,我不完全確定哪些是給定網站的cookie。 – HyLian 2011-01-09 22:04:27

0

首先,嘗試使用像IEdebugBar這樣的工具 - 它會以乾淨的方式顯示所有發送和接收的標題。

第二,你有沒有證實cooky沒有發送到服務器?既然看起來你試圖'偷'Facebook會話,我會假設Facebook會忽略來自具有不同IP,UserAgent等的瀏覽器的會話cookie。你是否考慮過這一點?

+0

我正在跟蹤使用wireshark的請求,所以我可以看到真正的http頭和cookie不發送:(如果我發送同樣的cookie使用腳本它實際上工作。問題是,IE不想發送我指向它發送的cookie – HyLian 2011-03-07 08:17:00

+0

teh cooki-date以正確的方式逃脫了嗎?你是否試過NULL而不是「」(這就是我在msdn上的一個例子中發現的)並且oyu試圖刪除(「星期六」和「08-」之間) - InternetSetCookie(「http://msdn.microsoft.com」,NULL,「TestData = Test; expires = Sat,06-Jan- 2007 00:00:00 GMT「); – rdmueller 2011-03-07 10:31:13

+0

是的,我試過了。確實,如果你沒有正確地放過期限,InternetSetCookie方法會返回一個錯誤。 – HyLian 2011-03-07 13:14:24

0

http://social.msdn.microsoft.com/Forums/ar/ieextensiondevelopment/thread/d46f0797-5ddb-40c0-af71-2178fa019da8

檢查本文

在代碼和作品並在 不我發現,在電腦上,其中的代碼不工作,我 比較這兩種環境中後在我的用戶帳戶下有一個目錄Cookies,我看到 這個文件,我無法刪除。

在另一臺機器,其中代碼的工作,我沒有一個目錄 餅乾登錄,即使我看到 Internet臨時文件目錄下的文件的用戶下。