webForumDet fria alternativet

Utloggningsproblem

ASPur ASP

27 svar · 688 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej :(

Har följande kod för att logga in och därmed anpassa menyer efter behörighetsnivå. Trodde jag fått det att funka....

Men, jag lyckas inte döda sessionen... :(

Någan vänlig själ som orkar titta igenom och se om ni hittar felet. Allt funkar utom själva utloggningen...

Tog bort koden för menyn för att spara plats.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!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>Untitled Document</title>
<link href="../Stylesheet/stylemenuFrame.css" rel="stylesheet" type="text/css">

</head>

<body>
<%

If Request.Querystring("logoff")="yes" Then
	   Session.Abandon
	   Response.redirect "menuFrame.asp"
	End if

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open

sUser = replace(Request.Form("User"), "'", "''")
sPassword = Replace(Request.Form("Password"), "'", "''")
blnLoginError = false

if sUser <> "" or sPassword <> "" then
	strSQL = "SELECT * FROM tblUser WHERE userName = '" & sUser & "' AND passWord = '" & sPassword & "'"
	set objRS = objConn.Execute(strSQL)

	

	If objRS.eof then
	    blnLoginError = true
	else

    Session("userId") = objRS("UserId")
    Session("Name") = objRS("name")
    Session("accessLevel") = objRS("accessLevel")

    Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
	Response.Write "<span class=""statusText"">" & Session("Name") & "</span><br><br>"

'Bestäm behörighetsnivån
select case session("accessLevel")

'Behörighetsnivå 1; Ledning och administratör
Case 1
     Response.Write 'meny för behörighet 1

'Behörighetsnivå 2; Installatörer
Case 2
     Response.Write 'meny för behörighet 2

     
End Select

    Response.Write "<br><table width=""150"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr><td align=""middle""><a href=""menuFrame.asp?logout=yes"">"&_
                    "(Logga ut)</a></td></tr></table>"

Session.Timeout = 10
end if

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

end if

if (sUser = "" and sPassword = "") or blnLoginError then
    Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
	Response.Write "<span Class=""statusText"">Ej inloggad!</span><br><br>"

 	Response.Write 'meny för ej inloggade

Response.Write "<form action=""menuFrame.asp"" method=""post"" name=""logIn""><table class=""tabell"" width=""150"" border=""0"" cellspacing=""4"" cellpadding=""0"">"&_
               "<tr><td class=""logIn"">Logga in </td></tr><tr><td class=""userName_passWord"">Användarnamn:</td></tr>"&_
               "<tr><td><input name=""User"" type=""text"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
               "<tr><td class=""userName_passWord"">Lösenord:</td></tr>"&_
               "<tr><td><input name=""passWord"" type=""password"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
               "<tr><td><input name=""Submit"" type=""submit"" class=""knapp"" value=""Logga in""></td></tr>"

If blnLoginError then
	Response.write "<tr><td class=""userName_passWord_wrong"" colspan=""2"">Felaktigt användarnamn eller lösenord. Försök igen!</td></tr>"
End if
Response.write "</table></form>"

End if
%>

Mvh

Medlem sedan juni 200032 969 inlägg
#2

På vilket sätt fungerar inte utloggningen?

Medlem sedan jan. 20013 582 inlägg
#3

session("userId" har fortfarande ett värde...

Däremot så fungerar menyhanteringen perfekt likaså om man skriver fel lösenord

Mvh

Medlem sedan jan. 200548 inlägg
#4

Du måste sätta att din session är tom

If Request.Querystring("logoff")="yes" Then
           Session("userId") = ""
	   Session.Abandon
	   Response.redirect "menuFrame.asp"
	End if

mvh

Medlem sedan juni 200032 969 inlägg
#5

flexish skrev:

Du måste sätta att din session är tom

Nej, det måste man inte. Session.Abandon gör sig av med alla sessionsvariabler för aktuell session.

- - - - - -

Om du använder ett frameset, prova att slänga ut ett javascript som laddar om frameset-sidan istället för att göra en redirect inne i framen;

<script>top.location.href='framesetsidan.asp';</script>

mvh

Medlem sedan jan. 200548 inlägg
#6

Nej, det måste man inte. Session.Abandon gör sig av med alla sessionsvariabler för aktuell session.

Jaha, jag brukar alltid göra det...så är det onödligt att skriva med det?

mvh

Medlem sedan juni 200032 969 inlägg
#7

Ja, det är onödigt.

Session.Abandon gör sig av med allt, men inte förrän sidan har processats klart. Därför brukar jag se till att göra en redirect direkt efter abandon.

http://www.devguru.com/technologies/asp/quickref/session_abandon.html

Medlem sedan jan. 20013 582 inlägg
#8

HUr fungerar javascriptet och var ska jag lägga det???

Mvh

Medlem sedan juni 200032 969 inlägg
#9

Släng ut det istället för din redirect direkt efter session.abandon. Lägg sedan en Response.End för att stoppa processandet av asp-kod.

För visst kommer du till rätt ställe i koden, och din redirect utförs?

Medlem sedan jan. 20013 582 inlägg
#10

Ja redirercten utförs

var ska response.end ligga

Mvh

Medlem sedan juni 200032 969 inlägg
#11
session.abandon
%>
<script>top.location......
<%
response.end
%>
Medlem sedan jan. 20013 582 inlägg
#12

ok, har inte provat än...

Men, varför dödas inte sessionen...
Förstår inte riktigt

Medlem sedan juni 200032 969 inlägg
#13

devotion skrev:

Men, varför dödas inte sessionen...

Har alltså session("userid") samma värde när du kommer till sidan du redirectas till när du kört abandon?

Låter himskans märkligt.

Medlem sedan jan. 20013 582 inlägg
#14

Jo, den har det...

Mvh

Medlem sedan jan. 20013 582 inlägg
#15

Får det inte att fungera...

Har lagt ut lite response.write session("userId") för att kolla om sessionen finns kvar...

Och det gör den!!! x(

<%
Response.Write session("userId")

If Request.Querystring("logoff")="yes" Then
	   Session.Abandon
	   Response.redirect "menuFrame2.asp"
       Response.End
End if

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open

sUser = replace(Request.Form("User"), "'", "''")
sPassword = Replace(Request.Form("Password"), "'", "''")
blnLoginError = false

if sUser <> "" or sPassword <> "" then
	strSQL = "SELECT * FROM tblUser WHERE userName = '" & sUser & "' AND passWord = '" & sPassword & "'"
	set objRS = objConn.Execute(strSQL)

	

	If objRS.eof then
	    blnLoginError = true
	else

    Session("userId") = objRS("UserId")
    Session("Name") = objRS("name")
    Session("accessLevel") = objRS("accessLevel")
    Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
	Response.Write "<span class=""statusText"">" & Session("Name") & "</span><br><br>"

'Bestäm behörighetsnivån
select case session("accessLevel")

'Behörighetsnivå 1; Ledning och administratör
Case 1
   Response.Write session("userId")  & "<br>"
     Response.Write ("meny 1")

'Behörighetsnivå 2; Installatörer
Case 2
   Response.Write session("userId")  & "<br>"

     Response.Write ("meny2")

     
End Select

    Response.Write "<br><table width=""150"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr><td align=""middle""><a href=""menuFrame2.asp?logout=yes"">"&_
                    "(Logga ut)</a></td></tr></table>"

Session.Timeout = 10
end if

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

end if

if (sUser = "" and sPassword = "") or blnLoginError then
    Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
	Response.Write "<span Class=""statusText"">Ej inloggad!</span><br><br>"

 	Response.Write ("meny ej inloggad")

Response.Write "<form action=""menuFrame2.asp"" method=""post"" name=""logIn""><table class=""tabell"" width=""150"" border=""0"" cellspacing=""4"" cellpadding=""0"">"&_
               "<tr><td class=""logIn"">Logga in </td></tr><tr><td class=""userName_passWord"">Användarnamn:</td></tr>"&_
               "<tr><td><input name=""User"" type=""text"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
               "<tr><td class=""userName_passWord"">Lösenord:</td></tr>"&_
               "<tr><td><input name=""passWord"" type=""password"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
               "<tr><td><input name=""Submit"" type=""submit"" class=""knapp"" value=""Logga in""></td></tr>"

If blnLoginError then
	Response.write "<tr><td class=""userName_passWord_wrong"" colspan=""2"">Felaktigt användarnamn eller lösenord. Försök igen!</td></tr>"
End if
Response.write "</table></form>"

End if
%>

Help me!!!

mvh

Medlem sedan juni 200032 969 inlägg
#16

Och inte blev det någon skillnad med javascriptet istället för response.redirect?

Medlem sedan jan. 20013 582 inlägg
#17

Nope!
Hänger kvar i a f

Mvh

Medlem sedan jan. 20013 582 inlägg
#18

Please, help me......

Mvh

Medlem sedan juni 200032 969 inlägg
#19

Om du skickar mig hela klabbet (alla filerna alltså) ska jag se om jag kan se något knas.

Mvh

Medlem sedan jan. 20013 582 inlägg
#20

kommer på posten...

Mvh

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