我想爲網站自動登錄進程。使用C#HttpWebRequests登錄到網站,然後在瀏覽器中打開
登錄過程需要多個請求來收集cookie並根據這些cookie設置表單值。使用一些C#HttpWebRequests,我得到了最後一個HttpWebResponse返回我想要的數據的位置,這表明我已經成功進行身份驗證。
是否可以在瀏覽器中打開此會話,以便在頁面打開時登錄?我開始認爲它不是,因爲我的會話與JSESSIONID cookie相關,並且我不知道如何在瀏覽器中手動設置它。
謝謝。
我想爲網站自動登錄進程。使用C#HttpWebRequests登錄到網站,然後在瀏覽器中打開
登錄過程需要多個請求來收集cookie並根據這些cookie設置表單值。使用一些C#HttpWebRequests,我得到了最後一個HttpWebResponse返回我想要的數據的位置,這表明我已經成功進行身份驗證。
是否可以在瀏覽器中打開此會話,以便在頁面打開時登錄?我開始認爲它不是,因爲我的會話與JSESSIONID cookie相關,並且我不知道如何在瀏覽器中手動設置它。
謝謝。
提供答案:
Cookie通過HTTP標頭傳遞給Web服務器。瀏覽器在內部管理已爲域設置的Cookie,並根據正在訪問的域跟蹤何時在HTTP請求中添加Cookie。最新版本的流行網頁瀏覽器往往會阻止在他們自己的內部管理系統中注入cookie,如果它們沒有通過HTTP響應正確設置的話。因此,我不知道你的C#代碼可以直接在你的瀏覽器中設置一個cookie。
然而,
您可以嘗試手動添加會話cookie和ETC到瀏覽器的HTTP請求(這將是一個整潔的實驗,並應實際工作)。您可以使用Firefox的開發工具輕鬆完成此操作。您理論上應該能夠以這種方式「劫持」由C#應用程序建立的會話。
您也可以通過您的HttpWebResponse流維持會話,但除非您正在開發Web瀏覽器,否則不容易在視覺上解釋標記。
Firefox允許您編輯HTTP請求標題,因此從技術上講,您可以使用Firefox Dev Tools手動添加會話Cookie值,然後發送編輯後的HTTP請求。你的意圖是簡單地嘗試HTTP頭? –
我的HTTP請求工作正常。我可以在HTTP響應中返回經過身份驗證的頁面(我可以看到諸如我的用戶名和響應流中的「退出」之類的內容)。我希望能夠在瀏覽器中打開此認證頁面,而不是在HttpWebResponse流中查看其html。 – downvoter24
然後,您需要手動將會話cookie等添加到瀏覽器的HTTP請求中。我不相信你可以直接在代碼中做到這一點,但你可以使用Firefox的開發工具來輕鬆完成。您理論上應該能夠以這種方式「劫持」由C#應用程序建立的會話。 –