Avatar billede stkol Nybegynder
15. juni 2003 - 15:14 Der er 17 kommentarer og
1 løsning

Session.OnEnd alert/redirect

Hejsa

Jeg ha´r nogle sessions som jeg har sat til Session.TimeOut = 120, dette har jeg sat i den asp side hvor jeg sætter Sessions (Skal Session.TimeOut = 120 sættes i Global.asa istedet????) Jeg vil gerne have lavet det sådan at når disse sessions timer ud, at man bliver redirectet til en bestemt side samt at man får en alert smidt op i hovedet, at man er logget af systemet, ydermere kunne jeg godt tænke mig at man på "systemet" kunne se hvor lang tid der er til at man bliver smidt af systemet!

Hvordan laver man det?? og hvor skal det placeres??

/Stig :-)
Avatar billede jytte Nybegynder
15. juni 2003 - 16:43 #1
Min erfaring er at session.TimeOut= 120 kun betyder at man sessionen minimum holder i 120 minutter, men den kan faktisk godt holde betydelig længere alt afhængig af serverens aktivitet. Jeg tror derfor ikke at du kan beregne hvor længe der er til sessionen dør. Desuden er det med de 120 minutter jo beregnet i forhold til sidste gang man aktivt gjorde noget på siden.

Selvom ens session timer out kan man altså fortsat læse og scrolle på den sidst loadede side, men så snart man f.eks linker til en ny side dør ens session.

Hvis du på hver side tjekker om man har en session kan du f.eks redirecte til en loginside hvis sessionen ikke længere eksisterer.
Avatar billede hossein Nybegynder
15. juni 2003 - 16:43 #2
Minimum værdi for timeout er 1. jeg har sat timeoutet til 3 efter 1 minut får man en besked:
<%@ Language=VBScript %>
<%
        Session.Timeout = 3
  %>

for redirect til en bestemt side kig her:
http://www.4guysfromrolla.com/webtech/tips/t022800-1.shtml
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>


<%
dim minutesbeforewarning
dim javascriptalert
minutesbeforewarning = 2
javascriptalert = (Session.Timeout - minutesbeforewarning) * 60000
%>

<script type="text/javascript" language="JavaScript">
<!--
window.setTimeout("alert('Du er ved at logges ud!');",<%=javascriptalert%>);
//-->
</script>

</BODY>
</HTML>
Avatar billede stkol Nybegynder
15. juni 2003 - 17:02 #3
Jytte > Tak for svaret, Jeg har allerede sat som du beskriver, at man bliver redirectet til en side!
Avatar billede stkol Nybegynder
15. juni 2003 - 17:03 #4
hossein  > Tak for dit svar, det ser meget spændende ud det du skriver, jeg vil lige prøve at lege lidt med det, og så vender jeg tilbage :-)
Avatar billede hossein Nybegynder
15. juni 2003 - 17:05 #5
selv tak!
Avatar billede stkol Nybegynder
17. juni 2003 - 21:31 #6
HOSSEIN > Dit javascript funker jo bare kanont *SS Men jeg kan ikke få koden fra 4guysfromrolla til at virke, den smider mig retur til login siden når jeg prøver at logge ind!! Hvad kan der være galt??

Jeg smider lige den kode fra dem :

Response.AddHeader "Refresh",CStr(CInt(Session.Timeout + 1) * 60)
Response.AddHeader "cache-control", "private"
Response.AddHeader "Pragma","No-Cache"
Response.Buffer = TRUE
Response.Expires = 0
Response.ExpiresAbsolute = 0

If (Session("Authenticated") <> Session.SessionID) Then
    Session("RequestedURL") = "http://" & _
        Request.ServerVariables("SERVER_NAME") & _
        Request.ServerVariables("SCRIPT_NAME")

    Temp = Request.ServerVariables("QUERY_STRING")
    If (Not(ISNull(Temp)) AND Temp <> "") Then
        Session("RequestedURL") = Session("RequestedURL") & _
            "?" & Temp
    End If
    Response.Redirect("/login.asp")
End If
Avatar billede hossein Nybegynder
17. juni 2003 - 21:42 #7
han skriver:
Line 1 addes a refresh tag that refreshes the page exactly 1 minute after the session timed out. This will cause the login page to appear and then redirect the user back to the page they were viewing.

Så skal du gi den mere end 1 minut? er det ikke det du vil?
Avatar billede stkol Nybegynder
17. juni 2003 - 21:46 #8
Nej, jeg vil gerne have at den laver det redirect 1 minut efter at Session er udløbet, men sådan som den fungere nu, kan jeg ikke engang logge ind på siden!! når jeg taster user/pass ind i login, smider den mig retur til login igen, og det er jo ikke hensigts mæssigt :-)
Avatar billede hossein Nybegynder
17. juni 2003 - 21:50 #9
hehe :) nej!
prøv at sætte den mere end 1 minut:
Response.AddHeader "Refresh",CStr(CInt(Session.Timeout + 1) * 60)
som:
Response.AddHeader "Refresh",CStr(CInt(Session.Timeout + 10) * 60)
Avatar billede stkol Nybegynder
17. juni 2003 - 22:03 #10
Det er det samme, den smider mig retur!!!
Avatar billede hossein Nybegynder
17. juni 2003 - 22:06 #11
Så prøv at i sætte den i toppen af siden lig med f ex:
Session.Timeout = 10
Avatar billede stkol Nybegynder
17. juni 2003 - 22:10 #12
Der sker desværer det samme!!
Avatar billede hossein Nybegynder
17. juni 2003 - 22:21 #13
udkoment de tilsvarende linier og erstæt med dem:
Response.AddHeader "Refresh",CStr(CInt(Session.Timeout + 1) * 60)
Response.AddHeader "Pragma","No-Cache"
Response.CacheControl="NO-CACHE"
Response.Expires=-1

Kører du på din egen server?
Avatar billede stkol Nybegynder
17. juni 2003 - 22:27 #14
Den smider mig tilbage stadigvæk!!!! Yes det er på min egen server!!!
Avatar billede hossein Nybegynder
17. juni 2003 - 22:42 #15
jeg kan ikke se hvor går det galt ellers prøv denne her ;-)

<script language="javascript">
function displayAlert()
{
alert("Din session udløber om 1 minute!")
}
</script>
<!-- Sæt timeout til 19 minutter -->
<body onLoad="setTimeout('displayAlert()',1140000)">
...

ellers kan du sende et par af din sider + en kopi af din db med nogle få udfyldte felter så kigger jeg på dem: mach3@get2net.dk
Måske jeg kan hjælpe!
Avatar billede jytte Nybegynder
18. juni 2003 - 05:32 #16
Efter brugeren er logget korrekt ind har du så husket at sætte

Session("Authenticated") = Session.SessionID  ?
Avatar billede stkol Nybegynder
27. juni 2003 - 10:19 #17
Hej Hossein > Tusind tak for dine svar, det virker perfekt, undskyld at jeg først vender tilbage nu :-)
Avatar billede hossein Nybegynder
29. juni 2003 - 11:10 #18
selv tak!
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