0

私のアプリケーションでは、ユーザーがログインするたびに、ログに記録されたユーザーに関するデータを格納するテーブルに追加されますが、それらのユーザーをテーブルから削除するための実装は何もしていません。そのユーザーがログアウトするか、他の方法でセッションを失ったときに、そのユーザーをテーブルから削除する必要があります。「SessionDestroy」イベントなど、破棄されたセッションに何かを実装できるものはありますか?

4

1 に答える 1

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);
于 2012-04-27T20:18:41.727 に答える