Ik heb een uitgebreid Messageboard in ASP gemaakt. Het werkt verder prima (WINXP PRO, WIN2000 PRO) behalve onder windows 2000 SERVER loop ik tegen een probleem aan. Het gaat hier uiteraard om het SERVER gedeelte.
Namelijk het uitloggen werkt niet.
Ik gebruik sessions en een aantal cookies voor het inlog gebeuren.
In mijn UserLogin Functie wordt er bekeken of een sessie bestaat (zo ja ben je ingelogd) anders kijkt deze naar je weggeschreven(encrypted) cookie, vergelijkt dit met het Database account en zet de login session. Dus ben je ingelogd.
Mijn logout pagina doet niks anders dan session.abandon (dus pleurt de sessions weg) en geeft een expire now aan de cookies zodat de cookies meteen verwijderd worden.
Het probleem is dat ik ingelogd blijf. Ik snap werkelijk niet hoe, maar het is toch zo.
Ik heb al het volgende geprobeerd.
Cache instellingen en expire instelling van IIS nagelopen en aangepast. Hier zit het volgens mij niet in.
En ik heb kwa code nog iets geprobeerd, namelijk:
bij inloggen
Session("WINSERVER") = ""
Bij uitloggen
Session("WINSERVER") = "true"
Mijn userlogin functie ziet er nu als volgt uit:
-------------------------------------------------------------------------------------------------------
Public Function CheckUserLogin(DBConn)
Dim strUsername, strPassword, strLoggedIn, recUsers, strQuery
If Session("WINSERVER") = "true" Then
strLoggedIn = "false"
ElseIf Session("UserID") <> "" Then
strLoggedIn = "true"
ElseIf Not Request.Cookies("Username")= Empty Or Not Request.Cookies("Username")= "" Then
strUsername = GetCookie("Username")
strPassword = GetCookie("Code")
strPassword = DeCryptPassword(strPassword,"")
Set recUsers = Server.CreateObject("ADODB.RecordSet")
strQuery = "SELECT * FROM Users WHERE fldName ='" & strUsername & "' AND fldPassword ='" & strPassword & "'"
recUsers.Open strQuery,DBconn
If Not recUsers.EOF Then
strLoggedIn = "true"
Session("UserID") = recUsers("fldID")
Session("Username") = strUsername
Else
strLoggedIn = "false"
End If
recUsers.Close
Set recUsers = Nothing
Else
strLoggedIn = "false"
End If
CheckUserLogin = strLoggedIn
End Function
-------------------------------------------------------------------------------------------------------
Resultaat:
Niet werken!
blijf ingelogd
Tips/help plz
Namelijk het uitloggen werkt niet.
Ik gebruik sessions en een aantal cookies voor het inlog gebeuren.
In mijn UserLogin Functie wordt er bekeken of een sessie bestaat (zo ja ben je ingelogd) anders kijkt deze naar je weggeschreven(encrypted) cookie, vergelijkt dit met het Database account en zet de login session. Dus ben je ingelogd.
Mijn logout pagina doet niks anders dan session.abandon (dus pleurt de sessions weg) en geeft een expire now aan de cookies zodat de cookies meteen verwijderd worden.
Het probleem is dat ik ingelogd blijf. Ik snap werkelijk niet hoe, maar het is toch zo.
Ik heb al het volgende geprobeerd.
Cache instellingen en expire instelling van IIS nagelopen en aangepast. Hier zit het volgens mij niet in.
En ik heb kwa code nog iets geprobeerd, namelijk:
bij inloggen
Session("WINSERVER") = ""
Bij uitloggen
Session("WINSERVER") = "true"
Mijn userlogin functie ziet er nu als volgt uit:
-------------------------------------------------------------------------------------------------------
Public Function CheckUserLogin(DBConn)
Dim strUsername, strPassword, strLoggedIn, recUsers, strQuery
If Session("WINSERVER") = "true" Then
strLoggedIn = "false"
ElseIf Session("UserID") <> "" Then
strLoggedIn = "true"
ElseIf Not Request.Cookies("Username")= Empty Or Not Request.Cookies("Username")= "" Then
strUsername = GetCookie("Username")
strPassword = GetCookie("Code")
strPassword = DeCryptPassword(strPassword,"")
Set recUsers = Server.CreateObject("ADODB.RecordSet")
strQuery = "SELECT * FROM Users WHERE fldName ='" & strUsername & "' AND fldPassword ='" & strPassword & "'"
recUsers.Open strQuery,DBconn
If Not recUsers.EOF Then
strLoggedIn = "true"
Session("UserID") = recUsers("fldID")
Session("Username") = strUsername
Else
strLoggedIn = "false"
End If
recUsers.Close
Set recUsers = Nothing
Else
strLoggedIn = "false"
End If
CheckUserLogin = strLoggedIn
End Function
-------------------------------------------------------------------------------------------------------
Resultaat:
Niet werken!
blijf ingelogd
Tips/help plz