05. april 2002 - 00:12
Der er
19 kommentarer og 1 løsning
har set mig blind..
Hej Jeg har set mig blind på det her tror jeg.. koden skulle gerne abandon sessions brugeren trykker på logout kanppen, men man kan stadig komme ind på sider man ikke burde.. nogen der kan se en fejl?: set rslog = server.createobject("ADODB.Recordset") brugernavn=request.form("brugernavn") password=request.form("password") If Request.Form("submit") = "login" Then brugernavn = Trim(Replace(Request.Form("brugernavn"),"'","")) password = Trim(Replace(Request.Form("password"),"'","")) If Len(brugernavn) > 0 And Len(password) > 0 then SQLlog = "SELECT * FROM bruger WHERE (brugernavn = '" & brugernavn & "') AND (password = '" & password & "')" rslog.open SQLlog, Conn loginfejl="" IF (rslog.BOF OR rslog.EOF) THEN loginfejl= "Der er fejl i brugernavn eller password. Prøv venligst igen" ELSE brugernavn = rslog("brugernavn") Session("brugernavn") = brugernavn END IF end if end if IF request.form("submit") = "logout" THEN Session.Abandon() END IF 'rslog.close Conn.close 'set rslog = nothing set Conn = nothing 'response.redirect request.servervariables("HTTP_REFERER") IF Session("brugernavn") <> "" THEN response.redirect "admin.asp" ELSE response.redirect "login.asp" END IF %>
Annonceindlæg fra SuperOffice
05. april 2002 - 00:14
#1
din form?
05. april 2002 - 00:15
#2
login.asp: <form name="login" METHOD="POST" ACTION="loginkode.asp"> <table width="250" border="0"> <tr> <td>brugernavn : </td> <td><input type="text" name="brugernavn" class="forms"></td> </tr> <tr> <td>password : </td> <td><input type="password" name="password" class="forms"></td> </tr> <tr> <td> </td> <td><input type="submit" name="submit" value="login" class="forms"></td> </tr> </table> </form> admin.asp: <form name="login" METHOD="POST" ACTION="loginkode.asp"> <table border="0"> <tr> <td><input type="submit" name="submit" value="logout" class="forms"></td> </tr> </table> </form>
05. april 2002 - 00:17
#3
og i admin.asp er har jeg også tilføjet denne kode for at checke om der er en Session("brugernavn").. IF isEmpty(Session("brugernavn")) THEN response.redirect "login.asp" END IF men det kan stadig lade sig gøre at komme ind på siden.. jeg kan bare ikke se hvad jeg har gjort forkert denne gang
05. april 2002 - 00:18
#4
admin? Du kan kun slå din egen sesson ned. Ikke andres, hvis ellers det er hvad du prøver på.
05. april 2002 - 00:20
#5
det er min egen session jeg skal slå ihjel.. eller alle der logger ind og får oprettet Session("brugernavn") og derefter logger ud skal have det slået ihjel..
05. april 2002 - 00:20
#6
Men ellers kan man jo komme ind på siderne, hvis du ikke i toppen af hver eneste side checker at man er logget ind. Hvordan gør du det?
05. april 2002 - 00:21
#7
IF isEmpty(Session("brugernavn")) THEN response.redirect "login.asp" END IF
05. april 2002 - 01:00
#8
Kan du også komme ind på siden og refreshe? Det drillede nemlig mig idag....
05. april 2002 - 01:04
#9
Ah, larsen, du mener siderne er cachede på klienten. Ja, det er en spændende teori. Er det tilfældet skal spørgeren blot i headeren på hver side sørge for at sætte caching fra.
05. april 2002 - 01:05
#10
nej jeg kan ikke refreshe siden, men jeg kan gå logge ind, logge ud så gå ind på siden uden problemer, så logge ud igen og gå ind på siden igen osv.. jeg tænkte også på om det kunne være at det cachede siden, men det undrer mig bare er der ikke noget at man kan sætte en tidsperiode hvor den cacher?
05. april 2002 - 01:08
#11
det er sådan set det samme kode jeg bruger på andre sites uden at det cacher på den måde.. en anden mærkelig ting er at når jeg trykker opdater efter at have logget ud og gået ind på siden igen så smider den mig over på login.asp, men viser stadig admin.asp i adresselinien.. ..men jeg bruger hverken server.execute eller server.transfer?
05. april 2002 - 01:09
#12
jeg mener man kan vha ASP bestemme hvilke sider der skal caches.. nogen der ved noget om det?
05. april 2002 - 01:11
#13
hmm simpelt faktisk: response.expires = 0 eller måske bedre med -1441
05. april 2002 - 01:14
#14
response.expires løser problemet, men meget mærkelig at den viste admin.asp i adresselinien.. vil i ikke smide et svar ind så jeg kan give jer point? -- xs
05. april 2002 - 01:17
#15
når jeg laver tilsvarende login, viser den også det "forkerte" filnavn i adresselinien. Det er dog til at overleve...
05. april 2002 - 01:18
#16
response.expires = minutes i øvrigt
05. april 2002 - 06:34
#17
Når du laver en Session.Abandon skal du være opmærksom på at Sessiionen først bliver afbrudt når siden er generet til sidste linie ... Hvis indholdet skal forsvinde med det samme, altså når du skriver kommandoen skal du bruge: Session.Contents.RemoveAll()
05. april 2002 - 11:20
#18
nå men larsen får point da det var pga ham at jeg fik løst problemet.. tak for jeres svar og kommentarer -- xs
05. april 2002 - 11:27
#19
Takker! =)
05. april 2002 - 11:29
#20
Tænk at få point i et spørgsmål hvor erikjacobsen deltager. (3.plads) Det er for vildt! Inden længe ligger jeg på førstepladsen! =)
Kurser inden for grundlæggende programmering