Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#18

AW: TCPServer Session/Eindeutige ID ermitteln

  Alt 4. Dez 2017, 16:46
Hier geht eben keine automatische Sessionverwaltung.
Bei TCP ist "standardmäßig" eine Session nur so lange, wie die Connection arbeitet und wird nicht automatisch über mehrere Connections geshared.
Das mußt du übernehmen.
(auch bei HTTP ist das nicht standardmäßig drin, aber kann mit vorhandenen Funktionalitäten umgesetzt werden)

1: Bei der ersten Connection eine ID generieren und an den Clienten senden (er speichert sie in den Cookies).
2: Der Client sendet diese ID dann innerhalb seine Session bei nachfolgenden Connections wieder an dich zurück.
3: Du schaust dann ob eine ID übermittelt wurde (wenn nicht, dann Punkt 1) und setzt/nutzt für nachfolgende Connections (innerhalt der Session der einzelnen TCP-Verbindungen) die übermittelte ID (nach Authentifizierung, dass diese ID auch noch gültig ist ... wenn nicht dann zu 1).

So wird z.B. die Session-Verwaltung hier im Forum gehandhabt.



Wenn Cookies gesperrt sind, dann könnte man die Session-ID als Parameter in die URL einbauen.
Nach dem Laden der ersten Seite eine Weiterleitung zur URL inkl. SessionID und dann auf der Webseite auch alle Links mit dieser ID anpassen/erweitern.

Alternativ kann man die Session eben anhand der IP verwalten, aber da geht pro IP nur eine Session. (auf HTTP-Ebene kann man das noch um Browser-Kennung und Dergleichen erweitern)
- der Server speichert sich zur IP eine Session-ID oder nutzt die IP direkt als ID.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Dez 2017 um 16:57 Uhr)
  Mit Zitat antworten Zitat