[英]Get ASP.NET authentication cookies with Mechanize
我正在嘗試使用Ruby Mechanize以編程方式登錄並在ASP.NET網站上建立會話。 問題是我似乎無法獲取登錄/身份驗證所需的三個cookie。
例如,當使用普通瀏覽器(例如Chrome)時,瀏覽器使用用戶名和密碼向登錄表單發出POST請求后,將設置三個cookie:
ASPXAUTH
ASP.NET_SessionId
UserName
使用Mechanize嘗試登錄時,提交登錄表單后,Mechanize代理的Mechanize::CookieJar
僅包含一個cookie: ASP.NET_SessionID
。
顯然,這會導致對登錄后頁面的任何后續請求均失敗,並抱怨“會話已過期”並“請再次登錄”。
無論如何,我可以通過編程方式獲取另外兩個cookie嗎? 它不一定必須通過Mechanize進行,但是必須有某種方法將此Cookie傳遞給它。
事實證明,某些(大多數)ASP.NET按鈕單擊是通過Javascript處理的。 當前版本的Mechanize(2.7)不支持Javascript交互。 我改用Capybara WebKit作為無頭驅動程序。 這樣便可以與所需的按鈕進行交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.