Session.Timeout = Int har alltid fungerat bra där man byter ut int mot ett tal. Annars kan du ju använda kaka för att hålla koll på användaren...
Response.Cookies.Expires = DateAdd("h", 2, Now())
8 svar · 482 visningar · startad av Biasse
Har en inloggning på min sida som jag har timeoutproblem på. Kör idag med "Session.TimeOut=120" men den loggar ut tidigt ändå.
Finns det inget annat sätt att styra detta bättre? tex på min asp upload har jag "Server.ScriptTimeOut = 10000" och det funkar kanon.
Session.Timeout = Int har alltid fungerat bra där man byter ut int mot ett tal. Annars kan du ju använda kaka för att hålla koll på användaren...
Response.Cookies.Expires = DateAdd("h", 2, Now())
1. Vad fungera inte?
2. Varför fungera inte Session.Timeout = 120 bra för dig? Vad förväntar du dig att ett annat skript skall göra?
Vet inte.. min kontrollfil ser ut såhär:
<%
Function secure(txt)
txt = Replace(txt, "'", "''")
secure = txt
End Function
Session.TimeOut=120
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\webb\sat\db\admin.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
anvNamn = secure(Request.Form("anvnamn"))
losenord = secure(Request.Form("losenord"))
SQL = "SELECT niva FROM admin WHERE anvnamn='" & anvnamn & "' AND losenord='" & losenord &"'"
RecSet.Open SQL, Connect, 3, 3
If not RecSet.EOF Then
Session("niva") = RecSet("niva")
If RecSet("niva")="1" Then
strPage="index.asp"
elseIf RecSet("niva")="2" Then
strPage="forum/default.asp"
elseIf RecSet("niva")="3" Then
strPage="forum2/default.asp"
elseIf RecSet("niva")="4" Then
strPage="koll.asp"
End If
' Här loggas IP när rätt lösenord och password angetts
SQL = "INSERT INTO iplogg([username],[ip],[loginstatus],[tid]) values ('"& anvnamn &"','"& Request.Servervariables("REMOTE_ADDR") &"','OK',#"& now() &"#)"
Connect.execute(SQL)
Response.Redirect strPage
else
' Här loggas IP när fel lösenrod och password angetts
query="INSERT INTO iplogg([username],[ip],[loginstatus],[tid]) values ('"& anvnamn &"','"& Request.Servervariables("REMOTE_ADDR") &"','Fail',#"& now() &"#)"
Connect.Execute(query)
end if
RecSet.Close : set recset = nothing
Connect.Close : set connect = nothing
Session("session") = "fel användarnamn eller lösenord"
Response.Redirect "start.asp"
%>
Och det fungera inte? Vad gör Session.TimeOut=120 som du inte vill att den ska göra?
Man loggas ut efter några minuter bara
Vilken av sessionarna kontrollera du "efter" du har blivit inloggad? Session("Session") eller Session("niva") ?
<%
If NOT Cint(Session("niva")) >=3 Then
Session("session") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE
end if
%>
Använd Session.Contents("niva") istället. Det är snällare mot burken. Liksom Session.Contents.Timeout (tror jag ska fungera).
Glöm inte att flusha Sessionen efter det att du har sparkat ut användaren annars kan datorn bli väldigt trött på några få användare bara. Session.Contents.Flush tror jag det är - finns i IIS-manualen annars (Som jag inte har tillgång till för tillfället).