TsgcHTTPServer › Özellikler › SessionClass
Sunucunun yeni HTTP oturumları oluşturmak için kullandığı sınıf; her oturumda özel veri saklamak için kendi TIdHTTPSession alt sınıfınıza ayarlayın.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
Varsayılan olarak sunucu düz TIdHTTPSession nesneleri oluşturur. SessionClass'ı TIdHTTPSession'ın bir alt sınıfına ayarlayın, sunucu bunun yerine her oturum için, AutoStartSession etkinleştirildiğinde otomatik olarak oluşturulanlar da dahil olmak üzere, bu sınıfı oluşturacaktır. Benzersiz oturum kimliği, oturum çerezi, SessionTimeOut ve eskimiş oturumların kaldırılması tam olarak öncekiyle aynı şekilde çalışmaya devam eder.
Oturum oluşturulduğunda kendi alanlarınızı ilklendirmek istiyorsanız alt sınıfınızda sanal yapıcı CreateInitialized'ı geçersiz kılın. Oturumu ARequestInfo.Session'dan geri okuyun ve kendi sınıfınıza dönüştürün.
SessionClass sunucu etkinleştirilmeden önce ayarlanmalıdır ve nil olamaz. Kendi SessionList'inizi atarsanız, bu özellik artık uygulanmaz, çünkü hangi sınıfın oluşturulacağına listeniz karar verir. Ayrıntılı bir açıklama için Sessions konusuna bakın ve OnCreateSession olayının oturum sınıfını değiştirmek için önerilen yol olmadığını unutmayın.
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;