Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   Datasnap Conexion (https://www.clubdelphi.com/foros/showthread.php?t=83968)

JULIPO 21-08-2013 23:40:39

Datasnap Conexion
 
Reciba un cordial saludo.

Necesito implementar un servidor Datasnap con delphi xe2, la idea es que los clientes que se van a conectar al servidor deban autenticarse para poder conectarse es decir que exista un usuario y password que es enviado al servidor y este compara con una base de datos y autoriza o no la conexion.

He revisado los ejemplos de delphi labs y encuentro mucha informacion pero no hacen lo que quiero, en estas aplicaciones se autoriza la llamada a los metodos pero el cliente siempre se conecta cuando va a ejecutar un procedimiento del lado del servidor ahi es donde se autentica no quiero eso quiero que simplemente que el cliente no se pueda conectar con el servidor (claro solo para realizar el proceso de autenticacion y si lo pasa ahi si se mantenga la conexion, si no pasa simplemente se desconecte pero esta desconexion busco que sea del lado del servidor)

de antemano gracias por su ayuda

maurogambo 22-08-2013 00:53:07

Datasnap server
 
Hola,

He desarrollados aplicaciones Datasnap con Delphi XE. Desconozco las novedades de este servicio en XE2.
Para autenticar a un usuario que intente establecer una conexión con el servidor debes implementar del lado del Servidor Datasnap el evento "OnUserAuthenticate" del componente "TDSAuthenticationManager" (Asimismo enlazarlos con TDSTCPServerTransport).

Por ejemplo:

Código Delphi [-]
procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
  Sender: TObject; const Protocol, Context, User, Password: string;
  var valid: Boolean; UserRoles: TStrings);
begin
  if User = 'admin' then
  begin
    UserRoles.Add('admins');
    valid := True;                           //<---- Se valida la conexión
  end
  else
    valid := false;                          //<----- Se rechaza la conexión del cliente.
end;

Echa un ojo a este artículo (en inglés): edn.embarcadero.com/article/41267


La franja horaria es GMT +2. Ahora son las 21:10:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi