Philipp Hasenfratz: webapplication Konzeptfrage Sessionverwaltung

Beitrag lesen

Halihallo Mark

Wie man's nimmt. Die per GET Methode von Seite zu Seite weitergereichte SessionID dient lediglich zur Identifizierung eines berechtigten Users.

Also werden keine anderen Daten in dieser Session gespeichert. Ja,
dann ist das kein Problem (ist auch anders kein Problem, nur, dass
bei wechselnder SessionId, die SessionId der verknüpften Daten auch
immer geändert werden muss).

Konkret heißt das: Wenn ein User sich einloggt, erhält er eine SessionID, welche ich zusammen mit einer UserID in einer Tabelle der Db speichere und wie gesagt per GET weiter reiche. Bei jedem Script kann ich so abfragen, ob die per GET übergebene SessionID in der besagten (Useronline) Tabelle ist. Wenn ja, is alles gut, wenn nicht kommt die "Bitte einloggen" Meldung....

IO.

Insofern müsste ich doch nur die SessionID in der Useronline Tabelle aktualisieren, sobald ich eine neue SessionID erzeugt habe.. Oder?

Richtig. Visualisiert dachte ich an folgendes:

Tabelle Session

SessionId
UserId

Tabelle SessionData

Id
SessionId
Name
Value

Beispiel:
Session: {15,'userA'}
SessonData: {1,15,'usr_login','userA'},{2,15,'usr_name','my_name'}

Falls nun die SessionId immer wechselt, müssen auch alle SessionId's
in SessionData geändert werden, da sonst die Daten nicht mehr an die
SessionId zugeordnet sind...

Egal, ich verwirre dich wohl mehr, als dass ich dir mit meinen
Kommentaren helfe :-)  Deine Aussagen sind richtig. :-)

Das wäre ein ziemlich gutes Verfahren, denn wenn jemand einfach die SessionID seines Arbeitskollegen nimmt, muss er die so bei jeder Seitenaktualisierung bzw. jedem Seitenaufruf seines Arbeitskollegen wieder neu kopieren, was wohl zuviel Aufwand sein würde...

Richtig. Es lässt sich mit grosser Wahrscheinlichkeit ausschliessen,
dass mit zwei Computern parallel gearbeitet wird. Aber ein Wechsel
der Arbeitsstation kannst du nicht erkennen (das geht eben ganz
einfach, indem die SessionId kurz bei der anderen Arbeitsstation
eingegeben wird).
Naja, eigentlich ist das ja auch sinnvoll, denn es soll ja eine
Ein-Benutzer-Lizenz sein und keine Eine-Arbeitsstation-Lizenz,
insofern haben wir die Aufgabenstellung fast geschaft :-)

Viele Grüsse

Philipp