我正在開發一個控制檯應用程序在C#做一些網站的背景刮。沒有使用webbrowser,winform或ASP等,只需簡單的http請求&響應。重新登錄後,立即被拒絕在C#網站註銷後退出#
我有這個註銷網站的問題,會話仍然存在,所以我的重新登錄在註銷後很快被拒絕,因爲該網站只允許一個併發用戶登錄。我做了谷歌研究,但沒有發現任何線索。
這裏是註銷代碼:
public HttpResult logout()
{
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "https://w w w.mysite.com/logoff",
Method = "get",
ResultCookieType = ResultCookieType.CookieCollection,
Allowautoredirect = true,
};
HttpResult res = http.GetHtml(item);
return res;
}
我已經使用的HttpWatch具有請求/響應頭的偷看以及餅乾。我發現響應包含三個在註銷後值爲零的cookie。我的印象是,在瀏覽器的情況下,這些cookie會被更新,因此請求中的重新記錄將被重定向到登錄頁面。我怎麼能像瀏覽器那樣做呢?
您應該將從登錄請求獲取的Cookie分配給註銷請求。簡單的方法是使用相同的請求實例。 – Graffito
我強制註銷的主要原因是我需要確保在重複測試刮取時我的重新登錄不會被拒絕。一旦我關閉了我的應用程序,我不確定在哪裏抓取舊cookie的建議。舊會話通常在5分鐘後到期,因此我可以再次登錄,但仍然很麻煩。 – Ben
我不知道HttpHelper類,但我想你可以在Login HttpResult中獲取Cookies(CookieCollection或CookiesContainer)。您可以存儲Cookie以在註銷請求中重複使用它們。我不認爲這與從註銷請求獲得的cookie有關。我寧願認爲註銷失敗,因爲註銷請求沒有包含預期的cookie。 – Graffito