Datasnap:会话销毁事件

时间:2012-04-27 19:08:12

标签: delphi events session datasnap

在我的应用程序中,无论何时用户登录,都会将其添加到存储有关已记录用户的数据的表中,但我没有实现将这些用户从我的表中删除。当他退出或以任何其他方式丢失会话时,我需要从我的表中删除该用户。是否有“SessionDestroy”事件或类似事件,这允许我在被破坏的会话上实现某些东西?

1 个答案:

答案 0 :(得分: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);