Poz. interesuje me da li neko zna kako se u ASP.NET-u prati ko je sve od korisnika ulogovan na ASP.NET sajt (sql baza). Tako da u svakom trenutku imam listu ulogovanih korisnika negde na sajtu. Proveru stanja u bazi npr. tabela KORISNICI kolona KORISNICI.ULOGOVAN bih vršio nekim js timerom na svakih 1min bih slao AJAX zahtev gde bih vršio upit nad bazom. Kako sam ja to zamislio: kada se korisnik uloguje postavim kolonu KORISNICI.ULOGOVAN = 'da' i KORISNICI.VREMELOGOVANJA = getdate(). i onda samo izlistavam one korisnike gde je ULOGOVAN = 'da'. Problem mi je što ne znam kako da uhvatim događaj kada neko napusti sajt da bih postavio ULOGOVAN = 'ne', zato što korisnik to može uraditi na više načina:
1)Može da klikne na link "izloguj se" (kad bi svi bili poslušni i radili logout ovako...međutim...)
2)Može samo da zatvori tab na iksić [X]
3)Može da zatvori ceo brovser na: - iksić [X]
- Alt + F4
- desnim u taskbaru na taj neki brovser pa "Close [X]"
- iz task managera na "End Task"
- iz task managera da ubije proces "End Process"
- na kraju krajeva može da restartuje ili izgasi komp ručno.
-....ako neko zna još neki način neka dopuni ...
Kako da ja detektujem da se nešto od ovoga desilo i da kažem u bazi KORISNICI.ULOGOVAN = 'ne' i KORISNICI.VREMELOGOVANJA = 'null'
gde IDKorisnika = 1567 npr.???
Video sam ima js event ONBEFOREUNLOAD što u velikom delu mi rešava problem osim:
-Kada korisnik klikne na refresh stranice ovaj događaj se ispaljuje (a korisnik se nije izlogovao) što mi ne odgovara.
-Kada korisnik zatvori ceo brovser (na neki od gore pomenutih načina se ONBEFOREUNLOAD ispaljuje i to zavisi od brovsera
do brovsera i od načina do načina)
,tako da ONBEFOREUNLOAD mi nije trajno rešenje.
Treba mi način tj. neko UNIVERZALNO rešenje (koje bi objedinilo sve brovsere i svaki od gore pomenutih načina izlogovavanja) kako da imam stalno u bazi u ril tajmu pravo stanje ko je ulogovan a ko ne. ASP.NET sajt + SQL baza.
Unapred hvala ako neko zna kako se ovo radi ili ako je neko naleteo na neki link..