如何显示连接到datasnap服务器的所有用户?

时间:2015-07-17 16:40:31

标签: delphi

好吧,我正在看一下RAD XE2与IDE的示例。 另外在互联网上我发现: Monitoring and Controlling DataSnap TCP/IP Connections

我的问题是如何访问有关用户的信息:ipaddress用户名等。这是

中的内容
 FConnections.Add(TIdTCPConnection(Event.Connection), Event.Channel);

为了在应用服务器中显示一个网格或连接用户的东西。 我用sql查询创建一个函数来验证用户是否有效。

function UsuarioValido(User,Password :string):boolean;

begin
 server:=TServerMethods1.Create(nil);
  with server.ListaU do
   begin
    Close;
    ParamByName('u').AsString:=User;
    ParamByName('P').AsString:=Password;
    ExecSQL();
    Open;

    if IsEmpty then
  begin
    Result:=false;
  end
  else
  Result:=true;
  end;
end;

然后在userauthenticate事件我有:

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
 Sender: TObject; const Protocol, Context, User, Password: string;
var valid: Boolean; UserRoles: TStrings);
begin

valid := UsuarioValido(User, Password);

  if valid then
   begin
    with server.cdslistado do
     begin
      Append;
      server.cdslistadousuario.AsString:=User;
      server.cdslistadoip.AsString:='121';
      Post;

  end;

end;
end;

正如你所看到的是一个clientdataset,我插入了当前连接的名称和ip,以便在dbgrid中显示它。但是我无法看到dbgrid的变化。

我找到了其他选择:

  TDSSessionManager.Instance.AddSessionEvent(
  procedure(Sender: TObject; const EventType: 
  TDSSessionEventType; const   Session: TDSSession)
  begin
     case EventType of
        SessionCreate:
           SessionInicio(Session); 
        SessionClose:
           SessionFin(Session);  
     end;
  end);

0 个答案:

没有答案