du kan smide en lille skjult iframe ind på siden (aæt style="display:none" på den) og så indlæse en side som indeholder en lille stump javascript der reloader en asp-side på serveren (som ikke gør andet end at load).
denne løsning burde ikke afgive nogen lyde eller andre gener for slutbrugeren, så det burde være en rimelig løsning. Alternativt kan du lægge noget script ind i siden som loader keepalive.asp ind i et skjult img-element, men iframe-løsningen er vist den der kræver mindst kode på siden...
Den iframe loader så hvert minut, hvilket måske er lidt for ofte, men du kan bare sætte timeout til en højere værdi end 60000 (det er millisekunder, så du kan bare finde regnestokken frem :)).
En anden løsning kunne være at du lavede en autologin-feature (der er sikkert argumenter imod dette), som aktiveres i det tilfælde at loginoplysningerne ikke findes i session. Jeg har selv eksperimenteret med dette ved hjælp en en cookie som indeholder nøglen til brugerens oplysninger. Den kontrollerer jeg så ved hver sideindlæsning på serveren. Hvis session er tabt, så starter jeg blot en ny og sætte de session-variable der nu var relevante. Denne løsning er dog lidt mere kompliceret, hvis du han mange session-variable indlæst, men jeg vil mene at det stadig kan lade sig gøre, hvis man sørger for at gemme sessioninfo i en database, som så kan indlæses ved genstart af session. Jeg er klar over at det gør session tungere, hvis man har meget opdatering af denne, men så har man nok slet ikke problemet.. :)
<% if session("userid") & "" = "" then if request.cookies("autologin") & "" = "" then response.redirect "/login.asp" else session("userid") = response.cookies("autologin") & "" end if end if %>
Denne asp-fil kan så bruges på de sider som kræver login som en include eller kaldes via Server.Execute.
<!-- #include file="checklogin.asp" --> <html> <head> <title>Denne side er beskyttet</title> </head> <body> sideindholdet som er beskyttet... </body> </html>
Jeg ved du ikke skal bruge dette kode, men for en god ordens skyld vil jeg lige rette en fejl i checklogin.asp
<% if session("userid") & "" = "" then if request.cookies("autologin") & "" = "" then response.redirect "/login.asp" else session("userid") = request.cookies("autologin") & "" end if end if %>
og så tilføje at når brugeren logger på, så skal cookien naturligvis sættes til brugerens id:
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.