AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist
Thema durchsuchen
Ansicht
Themen-Optionen

FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist

Ein Thema von michaelg · begonnen am 19. Jul 2023 · letzter Beitrag vom 19. Jul 2023
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#1

AW: FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist

  Alt 19. Jul 2023, 11:26
Ich kann es leider gerade nicht testen, daher nur unter Vorbehalt und ins Unreine gesprochen: Du könntest im OnBeforeExecute der Connection mit TestConnection die Gültigkeit der Verbindung prüfen. Im Falle einer Exception löscht du einfach die SessionID.

Das das TestConnection aber intern auch ein Execute aufruft, musst du dies im OnBeforeExecute abfangen, z.B. in dem du den Event-Handler temporär auf nil setzt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#2

AW: FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist

  Alt 19. Jul 2023, 15:06
Danke Euch beiden!

Ich habe es jetzt so gelöst. Vielleicht auch für andere interessant, die das Problem haben. Es funktioniert, auch wenn ich den Datasnapserver zwischendurch neu starte und die App ist noch aktiv.

Code:
procedure TPONClientModule.DSRestConnection1BeforeExecute(Sender: TObject);
begin
  DSRestConnection1.OnBeforeExecute:=nil;

  if DSRestConnection1.SessionID<>'' then begin
    try
      DSRestConnection1.TestConnection([toNoLoginPrompt]);
    except
      DSRestConnection1.SessionID:='';
    end;
  end;

  DSRestConnection1.OnBeforeExecute:=DSRestConnection1BeforeExecute;
end;
Dass ist die SessionID<>'' vorher abprüfe, habe ich gemacht, da der Login-Vorgang sonst nicht korrekt funktioniert. Und so weiß ich, dass ich mich bereits erfolgreich eingeloggt habe, denn sonst hätte ich keine SessionID.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz