Hvordan laver man et timeout-logout system.. til brugerbaseret ?
Hvordan laver man et timeout-logout system.. til brugerbaseret ? Jeg har lavet et system hvor man logger på og har derved adgang til scripts o.s.v Men mit problem er at brugerne aldrig trykker "logout" og er derved stadig "online" for de andre brugere... Det er ikke så smart, vel? - ej
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Slettet bruger
26. maj 2002 - 17:45#1
eftersom jeg ikke ved hvordan dit logon system er opbygget, er det ikke nemt.
jeg kører mine login med sessions, dvs. sætter en session til 30 minuter, hvis den ikke har været brugt i 30 min, er brugeren loggetud &:-D
For at ovenstående skal have nogen effekt, skal du ligge noget kode i Session_OnEnd i global.asa, som opdaterer online brugere, når deres session enten bliver afsluttet med session.abandon eller timer ud.
Du skal være opmærksom på, at sessions anvender cookies og at klienten derfor skal have dette enabled for at det virker. I modsat fald, vil hver enkelt request blive opfattet som en ny session.
Du skal også være opmærksom på, at Session_OnEnd på IIS 4 ikke kører i mere end 95-97% af alle tilfælde, hvor den timer ud. Dette påstås løst i IIS 5 og jeg har endnu ikke set nogen "brokke sig over" at det ikke passer at det er løst.
Sessin_OnEnd er en af 4 faste subrutiner, der kan ligges i global.asa og ja, den ligger normalt i roden af et web/applikation.
Her er et eksempel på en tom global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
'You can add special event handlers in this file that will get run automatically when 'special Active Server Pages events occur. To create these handlers, just create a 'subroutine with a name from the list below that corresponds to the event you want to 'use. For example, to create an event handler for Session_OnStart, you would put the 'following code into this file (without the comments):
'Sub Session_OnStart '**Put your code here ** 'End Sub
'EventName Description 'Session_OnStart Runs the first time a user runs any page in your application 'Session_OnEnd Runs when a user's session times out or quits your application 'Application_OnStart Runs once when the first page of your application is run for the first time by any user 'Application_OnEnd Runs once when the web server shuts down
</SCRIPT>
Og så skal du ikke bekymre dig så meget om questis' kommentar, vedkommende var sikkert ikke klar over at det er dig, der har stillet spørgsmålet og var nok bange for at "miste" sine point :-)
Set conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/Login/Users.mdb") strSql = "update bruger set brugeronline='nej' where brugernavn = '" & session("brugernavn") & "'" Conn.Execute(strSQL) Session.Abandon End Sub
Jeg har set flere eksempler på, at der er problemer med at anvende Access databaser i Session_OnEnd, mens der aldrig er problemer med SQL Server. Jeg kan ikke forklare dig hvorfor, men jeg tror jeg har set en 4-5 stykker i den sidste måned tid.
Synes godt om
Slettet bruger
25. december 2002 - 16:28#15
lukketid ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.