ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1129
1129
EMPFEHLEN
-
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
-
Hallo,
1.Einen Nutzer einloggen
Am einfachsten ist es folgendermaßen. Der Nutzer gibt Name+Passwort ein. Danach wird ein SELECT ausgeführt
Wenn das SELECT einen Datensatz liefert, logst du den Nutzer so ein:Code :1
"SELECT mitgliedernummer FROM mitglieder WHERE name=@name AND passwort=@passwort;"
Überprüfen ob oder eingeloggt ist:Code :1
HttpContext.Current.Session.Add("mitgliedernummer",>>Hier die ausgelesene id des Nutzers als string, int oder als anderes object(DataTable,DataRow....)<<).Code :1
if(HttpContext.Current.Session["mitgliedernummer"]!=null)
2.Sehen wer alles eingeloggt ist
Ich mache das zurzeit mit der mysql-Datanbank. Dort hab ich in der Mitgliedertabelle eine Spalte "lastactivity" als datetime, welche bei jedem Seitenaufruf auf NOW() gesetzt wid. Dann kann man alle Nutzer auslesen, welche in den letzten Minuten online waren.
Denkbar wäre es auch, die Daten im Anwendungsspeicher zu speichern. Anders als bei Sessions, hat hier jeder Client Zugriff. Also mach bei jedem Seitenaufruf folgendes:
Im oberen Beispiel wird ein Eintrag im Anwendungsspeicher erstellt. Der Key ist dabei die ID des Mitgliedes. Einen Inhalt hat der Eintrag nicht (null). Außerdem zerfällt der Eintrag nach 30 Sekunden (das Timespan Objekt). Jetzt kannst du ganz einfach von jedem Client aus überprüfen, ob ein anderen Nutzer eingeloggt ist, indem du überprüfst, ob im Anwendungsspeicher ein Eintrag vorhanden ist.Code :1 2 3 4 5
if(HttpContext.Current.Session["mitgliedernummer"]!=null) { HttpContext.Current.Cache.Remove(HttpContext.Current.Session["mitgliedernummer"].ToString()); HttpContext.Current.Cache.Add(HttpContext.Current.Session["mitgliedernummer"].ToString(), null, null, null, new TimeSpan(0, 0, 30), System.Web.Caching.CacheItemPriority.Default, null); }
Gruß
Ähnliche Themen
-
csharp gps
Von Kluse im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 22.05.08, 20:14 -
Csharp Taschenrechner
Von Trax5 im Forum .NET CaféAntworten: 16Letzter Beitrag: 27.06.07, 14:43 -
Komplexes Session/Cookie Management
Von nullpunkt im Forum PHPAntworten: 6Letzter Beitrag: 23.04.05, 20:23 -
Problem mit Session-Management
Von Moritz123 im Forum PHPAntworten: 2Letzter Beitrag: 01.12.04, 12:57 -
tutorial workaholic session-management
Von fragemann im Forum PHPAntworten: 10Letzter Beitrag: 02.06.03, 12:56





Zitieren

Login





