2012-04-27 154 views
0

在我的應用程序中,無論何時用戶登錄,他都會添加到一個存儲有關已記錄用戶數據的表中,但是我沒有任何實現將這些用戶從我的表中取出。當他以其他方式註銷或丟失會話時,我需要將該用戶從我的桌面中刪除。是否有一個「SessionDestroy」事件或類似的東西,這使我可以在銷燬的會話上實現一些東西?Datasnap:會話銷燬事件

回答

2

您可以將「會話事件」(使用匿名方法)添加到會話管理器中。自2009年以來,我猜(但在XE上測試過)。適用於REST會話等。示例代碼:

TDSSessionManager.Instance.AddSessionEvent(
procedure (Sender: TObject; const EventType: TDSSessionEventType; 
    const session: TDSSession) 
begin 
    case EventType of 
    SessionCreate : 
    begin 
     session.UserRoles.Add('guest'); // guest role is fixed 
     ... 
    end; 
    SessionClose: 
    begin 
     FreeAndNil(some_more_data); 
    end; 
    end; 
end);