@mmix
5 min posle slanja mog prethodnog posta sam našao na netu taj mali detalj da mora u web.config-u da se postavi
Code:
<sessionState mode="InProc" />
da bi se Session_End ispalio, što sam ja odmah uradio ovako:
Code:
<sessionState mode="InProc" cookieless="false" timeout="241"/>
međutim rezultat nije bio zadovoljavajući i dalje se Session_End ne rejzuje i meni u bazi i dalje ostaje ulogovan (1).
Da li možda treba da se podesi nešto na IIS-u da bi ovaj sessionstate model bio InProcess ili je dovoljno samo staviti ovo gore u web.config?
@maksvel
Poz.
Na "nesreću" ne mogu/ne smem da se ograničim samo na IE mora da bude još barem FF ili Chrome. Ja bih najradije izbacio IE potpuno ali ni to ne smem.
Ako si mislio na ovaj predlog:
Citat:
kad detektujes pokusaj logina sa IP adrese razlicite od trenutne sesije da korisnika pitas neko tajno pitanje na koje samo on zna odgovor.
.. možda nisam dobro razumeo predlog ali ..
tu mi se opet javlja onaj problem što ja treba da, kada se završi ta sesija, izbrišem taj IP (iz application state-a ili baze) da bi mogao kasnije opet da se uloguje , a nemogu da rešim ovaj deo "kada se završi ta sesija" jer to bi trebalo da bude baš u trenutku napuštanja aplikacije. Ako sam podesio u web.config-u da je session timeout = npr 2h korisnik u ta dva sata mora da može da se uloguje, pa malo nešto radi, pa izloguje posle 4 min i tako 10 puta u kratkim vremenskim intervalima i, pri tom, prilikom svakog od tih logovanja njemu ne sme da bude dozvoljeno da se uloguje i sa druge mašine (dok god je ulogovan sa ove prve) i dok god ne napusti aplikaciju (na bilo koji način klikom na logout ili bilo koji drugi svojom voljom ili bez).
@pl4stik
JS event sa kojim sam pokušavao je onbeforeunload ali ni on nije pouzdan (u smislu crossbrowser, crossbrowserversion a pogotovo kod nasilnog napuštanja stranice). Prilikom rejzovanja onbeforeunload eventa sam slao AJAX zahtev gde sam ažurirao vrednosti u bazi (ono ulogovan postavio na 0). Još jedan problem sa ovim načinom ovim onbeforeunload JS eventom je bio što se on okida i prilikom refresh-a stranice pa bih onda morao i to da nekako razlikujem od napuštanja stranice.
Takođe mana ovakvog rešenja sa klijentske strane preko JS-a: Npr. korisniku iz nekog razloga zakuje računar i mora da ga restartuje ili mu brovser "NOT RESPONDING" pa mora da ubije process, nestigne da klikne na logout. U ovim scenarijima korisniku se nikad neće rejzovati onbeforeunload event i to je glavni razlog što sam se okrenuo od ovog rešenja sa JS.