Ive는 고객 웹 사이트에 로그인하기위한 스크립트를 작성했습니다. 모든 것은 잘 작동하지만, 나는 그들이 사용하는 계정에서 부실 세션을보고 있다는 것을보고했다. 나는 내 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;
: 여기에 내가 쓴 코드입니다.
문제가 발생하면이 스크립트를 sessionvariable의 유무와 상관없이 실행했습니다. 처음에는 세션이 세션을 열어 두었고 다시 로그인을 시도 할 때 재사용된다는 것이 었습니다. 또한 모니터링 솔루션의 일부이기 때문에 120 초마다 로그인을 시도하도록 설정되어 있습니다.
그들은 "부실 세션"을 어떻게 정의합니까? 세션을 종료하기 위해 로그 아웃하거나 다른 조치를 취하기를 기대합니까? 컨텍스트에서 "세션"이란 무엇입니까 (HTTP는 상태 비 저장이므로)? 그들은 "부실 세션"을 남겨 두지 않는 수단으로 무엇을 제안 했습니까? – alroc
그들은 36 개의 활성 세션이있는 계정을 강조하는 스크린 샷을 보냈습니다. 나는 이것들을 가지고 아무것도하지 않고, 스크립트가 끝나자 마자 세션이 끝났다고 생각했다. 그래서 나는이 질문에 답하기 위해 계정이 웹 사이트에 많은 횟수로 기록되었다고 생각합니다. – Resin
그런 다음 WebRequest를 호출하여 로그 아웃하는 메서드를 호출해야하는 것처럼 들립니다. 그 웹 사이트를 운영하는 사람은 당신이해야 할 일을 알려줄 필요가 있습니다. – alroc