TsgcHTTPServer › 속성 › SessionList
활성 HTTP 세션을 보유하는 목록입니다. 코드에서 세션을 관리하려면 이 값을 읽거나, 세션이 저장되는 위치를 제어하려면 자체 목록을 할당하십시오.
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
서버가 활성화되기 전까지 nil
GetSession, CreateSession, CreateUniqueSession을 사용하여 코드에서 세션을 검색, 생성 또는 제거하려면 SessionList를 읽으십시오. 이 목록은 서버가 시작될 때만 생성되므로, 서버가 활성화되지 않은 동안에는 nil입니다.
세션이 저장되는 방식을 완전히 제어해야 할 때, 예를 들어 세션을 데이터베이스에 보관하거나 여러 서버 간에 공유해야 할 때 자체 목록을 할당하십시오. TIdHTTPDefaultSessionList에서 파생하여 가상 CreateSession 메서드를 재정의하십시오. CreateUniqueSession이 내부적으로 이를 호출하므로 고유 세션 ID는 여전히 자동으로 생성됩니다. 이 목록은 서버가 활성화되기 전에 할당해야 합니다. 하위 Indy 서버는 실행 중인 동안 세션 목록을 교체하는 것을 허용하지 않기 때문입니다.
자체 목록을 할당하면 SessionClass 속성은 더 이상 적용되지 않습니다. 목록이 어떤 클래스를 생성할지 결정하기 때문입니다. 전체 설명은 Sessions를 참조하십시오.
type
TMySessionList = class(TIdHTTPDefaultSessionList)
public
function CreateSession(const RemoteIP, SessionID: string)
: TIdHTTPSession; override;
end;
function TMySessionList.CreateSession(const RemoteIP, SessionID: string)
: TIdHTTPSession;
begin
Result := TMySession.CreateInitialized(Self, SessionID, RemoteIP);
SessionList.Add(Result);
end;
oServer.SessionList := TMySessionList.Create(nil);
oServer.Active := true;