TsgcHTTPServer › Proprietà › SessionClass

SessionClass Proprietà

Classe utilizzata dal server per creare nuove sessioni HTTP; impostarla su un proprio discendente di TIdHTTPSession per memorizzare dati personalizzati in ogni sessione.

Sintassi

property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession

Valore predefinito

TIdHTTPSession

Note

Per impostazione predefinita il server crea semplici oggetti TIdHTTPSession. Impostare SessionClass su un discendente di TIdHTTPSession e il server creerà invece quella classe, per ogni sessione, comprese quelle create automaticamente quando AutoStartSession è abilitato. L'ID di sessione univoco, il cookie di sessione, SessionTimeOut e la rimozione delle sessioni scadute continuano a funzionare esattamente come prima.

Eseguire l'override del costruttore virtuale CreateInitialized nel proprio discendente se si desidera inizializzare i propri campi quando la sessione viene creata. Rileggere la sessione da ARequestInfo.Session ed effettuare il cast verso la propria classe.

SessionClass deve essere impostata prima che il server venga attivato e non può essere nil. Se si assegna un proprio SessionList, questa proprietà non si applica più, perché è l'elenco a decidere quale classe creare. Vedere Sessioni per una spiegazione completa, e notare che l'evento OnCreateSession non è il modo consigliato per cambiare la classe di sessione.

Esempio


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;

Torna alle Proprietà