Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   DataSnap Login unterschied zwischen Settle, Berlin und Tokio (https://www.delphipraxis.net/195875-datasnap-login-unterschied-zwischen-settle-berlin-und-tokio.html)

Kostas 3. Apr 2018 11:10


DataSnap Login unterschied zwischen Settle, Berlin und Tokio
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Zusammen,

ich habe ein massives Problem beim Login auf einem DataSnap Server, wenn der Server in Tokio kompiliert wurde!

Ist der Server und der Adroid Client in Tokio kompiliert ist ein Login überhaupt nicht möglich. Es wird überhaupt kein Username und auch kein Password zum Server gesendet es werden zwei Leerstrings übergeben. Beim Windows FMX Client funktioniert das Login wenn Server und Client mit Tokio kompiliert werden. Es muss also mit den mobilen Konnektoren zusammenhängen.


Wenn der DataSnap Server über Seattle und der Android Client über Berlin kompiliert wird, ist ein Login nur möglich wenn keine Umlaute im Username und Password enthalten sind. Da gibt es Probleme wegen der Zeichensatzcodierung.

Ist der DataSnap Server über Berlin und der Client über Tokio kompiliert, ist ein Login möglich von Windows und auch über Android wenn keine Umlaute im Username und Password enthalten sind.

Ich habe das DataSnap Server, Windows FMX Client und den Adroid Client nur kopiert nicht verändert und neu kompiliert. Der DataSnap Server hat im Programmverzeichnis weitere Verzeichnisse Angelegt: css, images, js, proxy und templates. Die habe ich auch nicht verändert und stammen aus der Seattle Delphi Version. Kann es sein dass ich die Verzeichnisse manuell aktualisieren muss, kann es daran liegen?


[Edit]

Ich habe nun über Tokio Ein Beispiel Server und Android Client erzeugt der nur die Melthode ReverseString ausführt. Hier ist zu erkennen das der Username und Passwort vom Android Client nicht zum Server gesendet wird. Auch nicht wenn ich Username und Passwort direkt in die DSRestConnection1 eintrage.
Liegt hier ein Fehler vor oder mache ich etwas falsch?

Gruß Kostas

Kostas 13. Apr 2018 14:10

AW: DataSnap Login unterschied zwischen Settle, Berlin und Tokio
 
Ich habe die Ursache gefunden.

Der Event DSAuthenticationManager1.UserAuthenticate wird zwei mal gefeuert. Bei ersten mal ist User und Password immer leer und erst beim zweiten mal ist User und Password befüllt!


Delphi-Quellcode:
procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
  Sender: TObject; const Protocol, Context, User, Password: string;
  var valid: Boolean; UserRoles: TStrings);
begin
  { TODO : Validieren Sie den Client-Benutzer und das Passwort.
    Wenn eine rollenbasierte Autorisierung erforderlich ist, fügen Sie dem Parameter UserRoles Rollennamen hinzu }

  frMain.Memo1.Lines.Add(Format('Username: %s Password: %s',[User, Password]));

  valid := ((User = '1234') and (Password = '5678'));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz