TsgcWebSocketHTTPServer › 이벤트 › OnInvalidSession
HTTP 요청이 알 수 없거나 만료된 세션 ID를 제시할 때 발생하므로 애플리케이션이 어떻게 반응할지 결정할 수 있습니다.
__property TIdHTTPInvalidSessionEvent OnInvalidSession;
// typedef void __fastcall (__closure *TIdHTTPInvalidSessionEvent)(TIdContext * AContext, TIdHTTPRequestInfo * ARequestInfo, TIdHTTPResponseInfo * AResponseInfo, bool &VContinueProcessing, const UnicodeString AInvalidSessionID);
—
OnInvalidSession은 들어오는 HTTP 요청이 SessionList에 식별자가 없는 세션 쿠키를 가지고 있을 때(세션이 만료되었거나 이 서버에서 생성된 적이 없음) 발생합니다. AInvalidSessionID는 거부된 식별자이고 VContinueProcessing은 다음에 무슨 일이 일어날지 핸들러가 결정하게 합니다. 요청 디스패치를 계속하려면 True로 두고(OnCommandGet에서 로그인 페이지로 리디렉션을 제공하는 데 유용), 여기서 파이프라인을 중지하려면 False로 설정하십시오. 후자의 경우 애플리케이션은 반환하기 전에 AResponseInfo를 채워야 합니다. 이 이벤트는 SessionState가 True일 때만 발생합니다.
void OnInvalidSession(TIdContext *AContext, TIdHTTPRequestInfo *ARequestInfo,
TIdHTTPResponseInfo *AResponseInfo, bool &VContinueProcessing,
const UnicodeString AInvalidSessionID)
{
AResponseInfo->Redirect("/login");
VContinueProcessing = false;
}