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秒尝试登录一次。
他们如何定义“过时的会话”?他们是否期望您注销或以其他方式采取措施终止会话?在他们的上下文中什么是“会话”(因为HTTP是无状态的)?他们提出什么建议作为不让“陈旧会议”落后的手段? – alroc
他们给我发了一张截图,突出显示我正在使用的帐户有36个活动会话。我没有对这些做任何事情,只要脚本完成会议结束,我就会假设。所以我想回答这个问题,这个帐号被登录了很多次。 – Resin
然后,它听起来像你需要调用WebRequest来调用一个方法,注销你。运行该网站的人需要告诉你在那里需要做什么。 – alroc