1. #1
    Newbie
    Dabei seit
    Sep 2009
    Beiträge
    4

    [C#] CSharp Session Management

    Hallo,

    ich bin gerade dabei mich in CSharp einzuarbeiten, bisher gefällt mir das sehr gut obwohl ich ursprünglich aus dem PHP Bereich komme.

    Jetzt hab ich da ein leichtes Verständnisproblem. Und zwar bastel ich an einer kleinen Applikation, welche ein Login Formular zur Verfügung stellen soll, wenn kein Nutzer angemeldet ist, ist einer angemeldet, soll der eigentliche Spaß beginnen. Die Nutzerdaten liegen in einer MySQL Datenbank und die Kommunikation zwischen Server und Klient passt auch schon nur halt wie gesagt, wie und wo ich speichern kann, wer gerade angemeldet ist und ob überhaupt jemand angemeldet ist, weiß ich grad net.

    Wie könnte man das am Besten/Simpelsten lösen?

    Beste Grüße Stefan

    PS: Bevor jemand meckert, ja ist nen Cross Posting, aber manchmal hilfts.

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Lt. Commander
    Dabei seit
    Jul 2006
    Ort
    Wien
    Beiträge
    1.645

    [C#] AW: CSharp Session Management

    Hi,

    Ich bin da zwar auch kein experte, aber du könntest z.B in der Datenbank bei den Usern eintragen wer online ist und das hald immer abfragen...da hätte ich folgende ideen:

    eigene "online" tabelle:
    +: leicht abzufragen
    -: user müssen immer korrekt ausloggen bzw. das programm muss sich immer korrekt abmelden

    lastaction spalte in der user tabelle:
    +: man kann ein timeout nehmen ab wann der user als offline gilt
    -: man müsste lastaction immer aktualieren wenn der user was macht

    oder hald ne mischung draus, eigene tabelle, und wer länger als z.B 15min ohne update drin is wird als offline angezeigt...da müsste sich der client hald immer beim server melden.

    Je nach sicherheitslevel z.B nur ob der client verbunden ist, oder sogar mit nem challenge / respone verfahren wenns bisserl sicherer sein soll

  4. #3
    Newbie
    Ersteller dieses Themas

    Dabei seit
    Sep 2009
    Beiträge
    4

    [C#] AW: CSharp Session Management

    Hy,

    danke erstmal für deine Antwort an sowas habe ich auch schon gedacht. Muss halt nur sehen, was ich mache, wenn das Programm mal abstürzt.

    Was genau meinst du mit Chalange / Response Verfahren?

    Edit: Ha, Wikipedia hat mich denn mal aufgeklärt.
    Geändert von StefanRHRO (12.09.2009 um 20:48 Uhr)

  5. #4
    Lt. Commander
    Dabei seit
    Jul 2006
    Ort
    Wien
    Beiträge
    1.645

    [C#] AW: CSharp Session Management

    mjo das einfachste wäre hald dass der client sich alle X sekunden / minuten beim server melden muss damit er online bleibt, oder der server fragt mit einem einfachen challenge/response ding nach obs den client gibt

    also z.B 1x in der minute bekommt jeder client eine frage, z.B 2 zahlen im paket, und er muss die addition zurückliefern, dann gilt er noch als online

    EDIT: Sicherer wäre natürlich folgender Ablauf:

    Server fordert Meldung an, Salt abcdefg
    Client nimmt user+pass+salt (usernamepasswordabcdefg), macht draus nen Hash, und schick den an den Server
    Server vergleicht den hash vom client mit dem hash den er berechnet hat für die jetzige meldung

    und dann je nachdem client online/offline setzen in der liste
    Geändert von Zeroflow (12.09.2009 um 21:11 Uhr)

  6. #5
    Newbie
    Ersteller dieses Themas

    Dabei seit
    Sep 2009
    Beiträge
    4

    [C#] AW: CSharp Session Management

    Ich werd wohl ähnlich vorgehen, wie bei Cookies im Web.

    a=Zufallsstring, b=Saltwert (sollte auch zufällig generiert werden), sowie einem vom Server bekannten konstanten c=Saltwert (um Brutforcing vorzubeugen). a wird denn vom Clienten mitgeschleppt und nach x Minuten erneuert.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •