webForumDet fria alternativet

Ta bort session

5 svar · 318 visningar · startad av Emil RT

Emil RTMedlem sedan feb. 2004200 inlägg
#1

Sitter med en "enkel" inloggningssida som använder sessions för att hålla koll på om man är inloggad.

Har även en knapp på den lösenordsskyddade sidan som heter "logga ut" där man vidarebefodras till loginsidan igen.

Där töms sessionkakan.

Då borde man inte kunna komma in på den lösenordsskyddade sidan om man skriver in adressen manuellt väl?
Det gör jag i varje fall. Har testat att sätta kakan till "", remove, removeAll och abandon.

Försvinner endast sessions efter timeout och när man stänger läsaren?

/E

@ndersMedlem sedan juni 200032 969 inlägg
#2

Vad menar du med "sätta kakan till"? Hur ser din kod ut?

Sessionsvariabler försvinner vid timeout och när man kör abandon(), men inte när du stänger webbläsaren.

Emil RTMedlem sedan feb. 2004200 inlägg
#3
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="OpenDB.asp"-->
<% If Request("action")="" Then 
     Session.abandon()
%>

<!DOCTYPE HTML Public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Logga IN</title>
</head>
<body>
<form method="post" action="login.asp?action=login">
  USER: <input type="text" name="uname"><br>
  PASS: <input type="password" name="pword"><br>
        <input type="submit" name="Submit" value="Submit">
</form>

<%
Else
   dim user, pass, nextpage
   user=Request.Form("uname")
   pass=Request.Form("pword")
    Set Rs=Server.CreateObject("ADODB.Recordset")
    sql="SELECT * FROM anv WHERE User='"&user&"' AND Pass='"&pass&"'"
    Rs.Open sql, DataConn
    If NOT Rs.EOF Then
      Session("userId")=RS(0)
      nextPage="default.asp"
    Else
      nextPage="login.asp"
    End If
    Response.Redirect(nextPage)
End If
%>
</body>
</html>
<!--#include file="CloseDB.asp"-->
@ndersMedlem sedan juni 200032 969 inlägg
#4

Gör en response.redirect efter du gör abandon.

Annars kan jag väl tänka mig att det är din webbläsare som cachar sidorna. Du får lägga in lite kod för att tala om för webbläsaren att den inte får cacha dina skyddade sidor, så borde det bli ok.

magnusfernstromMedlem sedan mars 20033 686 inlägg
#5

Det där har jag också upplevt ibland, men är det inte bara på första försöket du kan se sidan, dvs om du uppdaterar sidan skickas du till login-sidan igen? Så har det iallafall varit för mig.

Om det trots allt inte funkar, gör som @nders sa, avsluta alla sessions som är igång.

Emil RTMedlem sedan feb. 2004200 inlägg
#6

Jepp man kommer tillbaka till loginsidan om man uppdaterar.

Följde era tips och la in fäljande kod överst på "defaultsidan"

<%
Response.Expires=0
Response.ExpiresAbsolute = Now() -2
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>

Och det funkar finfint!

/E

136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)