TsgcHTTPServer › Properties › SessionClass
サーバーが新しい HTTP セッションを作成する際に使用するクラス。セッションごとのカスタムデータを保存するには、独自の TIdHTTPSession 派生クラスに設定してください。
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
デフォルトでは、サーバーは単純な TIdHTTPSession オブジェクトを作成します。SessionClass を TIdHTTPSession の派生クラスに設定すると、AutoStartSession が有効なときに自動的に作成されるものも含め、サーバーはすべてのセッションで代わりにそのクラスを作成するようになります。一意のセッションID、セッションクッキー、SessionTimeOut、および古くなったセッションの削除は、以前とまったく同じように機能し続けます。
セッションが作成されたときに独自のフィールドを初期化したい場合は、派生クラスで仮想コンストラクタ CreateInitialized をオーバーライドしてください。セッションは ARequestInfo.Session から読み戻し、自分のクラスにキャストします。
SessionClassは、サーバーがアクティブ化される前に設定しておく必要があり、nil にすることはできません。独自のSessionListを割り当てた場合、どのクラスを作成するかは自分のリストが決めるため、このプロパティはもはや適用されません。詳しい説明はSessionsを参照してください。また、OnCreateSessionイベントはセッションクラスを変更するための推奨方法ではないことに注意してください。
type
TMySession = class(TIdHTTPSession)
private
FUserName: String;
public
property UserName: String read FUserName write FUserName;
end;
oServer := TsgcHTTPServer.Create(nil);
oServer.SessionState := true;
oServer.SessionTimeout := 600000;
oServer.SessionClass := TMySession;
oServer.Active := true;