Avatar billede oergaard Nybegynder
07. juni 2005 - 12:16 Der er 10 kommentarer og
1 løsning

Redirect v/ session.timeout.

Hejsa

Jeg har en side, hvor jeg har brug for, at brugerne automatisk bliver redirectet til login-siden, hvis session udløber.

Jeg har forsøgt, at indsætte koden Response.Redirect("login.asp") i min global.asa fil (selvfølgelig i Session_OnEnd)

Ydermere har jeg forsøgt mig med, at indsætte koden <meta http-equiv="REFRESH" content="1800; url=login.asp"> i min <head>. Dette virker også til dels, dog giver det 2 problemer.
1. hvis brugeren opdatere siden m/ F5 redirecter den ikke længere efter de 1800 sek.
2. Tiden starter ikke på ny hvis brugeren bliver aktiv efter 1785 sek. (eller lign.)

Nogen der kan hjælpe??

//Oergaard
Avatar billede fennec Nybegynder
07. juni 2005 - 12:20 #1
Du smide denne kode ind på alle sider som kræver at man er logget på:

if session("logon") <> "OK" then
  response.redirect("logon.asp")
end if

Når man logger ind sætter du så session("logon") = "Ok"

Du kan evt bruge en af dine andre session variabler i stedet, så du ikke skal ændre dit logon script.
Avatar billede oergaard Nybegynder
07. juni 2005 - 12:23 #2
Ja det burde jeg have tilføjet, det skal fungere således, at hvis en bruger logger ind på siden, hvorefter han/hun forlader sin PC, skal siden automatisk redirecte således, at når brugeren kommer retur står på login.asp siden.

//Oergaard
Avatar billede medions Nybegynder
07. juni 2005 - 12:30 #3
Så skal du lave et JavaScript der refresher siden hvert 20. eller 21. minut, eftersom en session udløber efter 20 minutter...

Og så brug fennec's kode...

//>Rune
Avatar billede fennec Nybegynder
07. juni 2005 - 12:33 #4
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
window.setTimeout("location.href='index.asp';",5000)
//-->
</SCRIPT>
Avatar billede oergaard Nybegynder
07. juni 2005 - 12:39 #5
Problemet vil så være, at siden refresher efter 21 min uanset hvad. De felter, som endnu ikke er gemt i sessions vil så blive slettet, hvilket vil være til gene for brugerne.
Avatar billede medions Nybegynder
07. juni 2005 - 12:47 #6
Well, så kan du jo lave en lille iframe som er usynlig som du så har til at kører din timer... - den kan du jo så få til og styre hvad du vil, fx. om der er skrevet noget i felterne eller hvad der er... - alt dette kan du efterspørgere gennem JavaScript... - så lav en lille iframe fil som er proppet med JavaScript forspørgseler...

//>Rune
Avatar billede medions Nybegynder
07. juni 2005 - 12:48 #7
Noget a la:

<iframe src="tjekker.html" frameborder="0" border="0" width="0" height="0"></iframe>

//>Rune
Avatar billede fennec Nybegynder
07. juni 2005 - 12:57 #8
Du kan også kalde en resettimer hver gang brugeren trykker på en tast:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
timer = window.setTimeout("location.href='index.asp';",5000)
function resetTimer()
{
  window.clearTimeout(timer)
  timer = window.setTimeout("location.href='index.asp';",5000)
}
//-->
</SCRIPT>
<input type="Text" name="test" value="" onkeydown="resetTimer()">

Kan sikkert også laves med en window event som fanger keydown, så det ikke skal på samtlige elementer, men det hved jeg ikke hvordan man gøre så det er crossbrowser.
Avatar billede fennec Nybegynder
07. juni 2005 - 13:03 #9
Det lader til at denne kode virker i IE og FF:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
timer = window.setTimeout("location.href='index.asp';",5000)
function resetTimer()
{
  window.clearTimeout(timer)
  timer = window.setTimeout("location.href='index.asp';",5000)
}
document.onkeydown = resetTimer
//-->
</SCRIPT>

Der skal ikke () på funktionskaldet.
Avatar billede oergaard Nybegynder
08. juni 2005 - 11:32 #10
medions>> Tak for deltagelsen, men jeg vælger dog at bruge fennec's løsning, idet det præcist var det jeg ledte efter.

fennec>> Tak for hjælper. Selvfølgelig!!! :-)

//Oergaard
Avatar billede hnteknik Novice
08. juni 2005 - 21:39 #11
Øv er først kommet hjem fra Jylland. Havde eller et script, der talte ned fra session.timeout minut for minut og redirektede ala ovenstående.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester