2016-11-16 37 views
0

我編寫了一個腳本來登錄到客戶網站。一切正常,但他們報告說,他們看到我使用的帳戶陳舊的會話。我無法解決這個問題,因爲我的googlefu沒有任何返回。這是我寫的代碼:Invoke-WebRequest離開會話打開

$c = Get-Credential -credential ${CREDENTIAL} 

$loginbase = 'http://${IP}' 
$loginURL = $loginbase + '/AdminTools/querybuilder/' 
$r = Invoke-WebRequest -Uri ($loginURL + 'logonform.jsp') -SessionVariable session 

$form = $r.Forms[0]; 

$form.Fields['aps'] = '${Node.DNS}:6400'; 
$form.Fields['usr'] = $c.Username; 
$form.Fields['pwd'] = SecureStringToString $c.Password; 

$r = Invoke-WebRequest -Uri ($loginURL + $form.Action) -Method POST -Body $form.Fields -WebSession $session; 

伊夫在這個一直盯着太久,只是需要另一套眼睛輕推我在正確的方向。

如果它確實很重要,我已經運行了這個腳本,並且沒有會話變量。但我最初的看法是會話導致會話保持打開狀態,並在重新嘗試登錄時重用。此外,這是監控解決方案的一部分,因此它設置爲每120秒嘗試登錄一次。

+2

他們如何定義「過時的會話」?他們是否期望您註銷或以其他方式採取措施終止會話?在他們的上下文中什麼是「會話」(因爲HTTP是無狀態的)?他們提出什麼建議作爲不讓「陳舊會議」落後的手段? – alroc

+0

他們給我發了一張截圖,突出顯示我正在使用的帳戶有36個活動會話。我沒有對這些做任何事情,只要腳本完成會議結束,我就會假設。所以我想回答這個問題,這個帳號被登錄了很多次。 – Resin

+1

然後,它聽起來像你需要調用WebRequest來調用一個方法,註銷你。運行該網站的人需要告訴你在那裏需要做什麼。 – alroc

回答

0

由於會話由Web服務器上的某些內容維護,因此腳本需要執行「註銷」操作以允許Web服務器關閉會話。該網站的維護者應該擁有一個URL,您可以調用請求來執行該註銷操作並清理其服務器上的所有資源。