Delphi Datasnap:会话销毁事件

Delphi Datasnap:会话销毁事件,delphi,events,session,datasnap,Delphi,Events,Session,Datasnap,在我的应用程序中,每当用户登录时,都会将其添加到一个表中,该表存储有关已登录用户的数据,但我没有实现将这些用户从表中删除的功能。当该用户注销或以任何其他方式丢失会话时,我需要将其从我的表中删除。是否存在“SessionDestroy”事件或类似事件,允许我在已销毁的会话上执行某些操作?您可以将“会话事件”(使用匿名方法)添加到会话管理器中。我想是从2009年开始(但在XE上进行了测试)。适用于休息时间和更多时间。示例代码: TDSSessionManager.Instance.AddSessi

在我的应用程序中,每当用户登录时,都会将其添加到一个表中,该表存储有关已登录用户的数据,但我没有实现将这些用户从表中删除的功能。当该用户注销或以任何其他方式丢失会话时,我需要将其从我的表中删除。是否存在“SessionDestroy”事件或类似事件,允许我在已销毁的会话上执行某些操作?

您可以将“会话事件”(使用匿名方法)添加到会话管理器中。我想是从2009年开始(但在XE上进行了测试)。适用于休息时间和更多时间。示例代码:

 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);