TsgcHTTPServer › Proprietà › SessionClass
Classe utilizzata dal server per creare nuove sessioni HTTP; impostarla su un proprio discendente di TIdHTTPSession per memorizzare dati personalizzati in ogni sessione.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
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.
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;