Ver Mensaje Individual
  #3  
Antiguo 31-01-2025
ricardol ricardol is offline
Registrado
 
Registrado: ene 2025
Posts: 2
Reputación: 0
ricardol Va por buen camino
gracias clauxs88 mira este es mi código donde realizo la autenticación

Código Delphi [-]
////  en el objeto  DSAuthenticationManager  conecto con mi base de datos para autenticar por usuario 

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
  Sender: TObject; const Protocol, Context, User, Password: string;
  var valid: Boolean; UserRoles: TStrings);
  var
   wCon:TStringList;
   Sql:string;
begin
  { TODO : Validate the client user and password.
    If role-based authorization is needed, add role names to the UserRoles parameter  }
    wCon:=TStringList.Create;
    wCon.LoadFromFile('cadena_de_conexion.txt');
    ADO1.ConnectionString:=wCon.Text;
    ADO1.Connected:=True;                           ///////////conecto a la BD
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('Select rol,usuario,pwd,status from usuarios usuarios where usuario='+quotedstr(User) +' and pwd='+quotedstr(Password));
    Query1.Open;
    if Query1.RecordCount>0 then     /////si el usuario esta activo , le agrego los roles pueder ser de solo consulta o de escritura
    begin
        if (Query1.fieldbyname('rol').AsString='consulta'  ) then
        begin
            UserRoles.Add('consulta');
            valid := True;
        end
        else if (Query1.fieldbyname('rol').AsString='actualiza'  ) then
             begin
                 UserRoles.Add('actualiza');
                 valid := True;
             end
             else
                 valid := false;
    end
    else
        valid := false;     /////////si no esta activo el usuario   no se agregan roles

    query1.Close;        
    ADO1.Connected:=false;    cierro mi conexión a la BD

end;

Última edición por dec fecha: 03-02-2025 a las 10:52:52. Razón: Poner etiquetas DELPHI
Responder Con Cita