Avatar billede jmc Nybegynder
18. juni 2001 - 19:46 Der er 17 kommentarer og
2 løsninger

session

Hvordan sikrer man via en oprettet session, at der logges ud fra en side? Kan den lille kodesnippet, som jeg angiveligt skal sætte ind på alle sider, egentligt ikke skrives rimeligt kort?
Avatar billede orca Nybegynder
18. juni 2001 - 19:54 #1
Sådan som jeg gør det er at jeg på min login side laver denne kode

Session(\"login\") = \"true\"

På alle mine beskyttede sider har jeg bare denne kode

<%
If Session(\"login\") = \"true\" Then
else
Response.Redirect(\"loginside.asp\")
End If
%>

Og hvis jeg vil logge ud så går jeg bare til min logud side som kun indeholder denne kode:

<%
Session(\"login\") = \"false\"
Response.Redirect(\"loginside.asp\")
%>

Håber det hjælper.
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 22:08 #2
orca>> Hvorfor lave en redirect så kommer brugeren jo ikke ind på den ønskede side, følgende vil altid få brugeren på den rette side...


<%
If Session(\"login\") <> true Then
  Response.write(\"<form action=\"\"\" & Request.ServerVariables.Item(\"SCRIPT_NAME\") & \"\"\" method=\"\"post\"\">\")
  REsponse.write(\"<input type=\"\"text\"\" name=\"\"username\"\" size=\"\"30\"\">\")
  REsponse.write(\"<input type=\"\"password\"\" name=\"\"password\"\" size=\"\"30\"\">\")
  Response.write(\"</form>\")
  Response.End
Elseif Request.Form.Item(\"username\") <> \"\" Then
  \'Slå username og password op i databasen
  If objRS.BOF Then
  Response.write(\"Forkert password eller brugernavn tryk tilbage og prøv igen\")
  objRS.close
  Set objRS = Nothing
  objConn.Close
  Set objConn = Nothing
  Response.end
  Else
  Session(\"login\") = true
  End if
End if

Og logud siden skal så indeholde:

Session.Abandon

derved får vi frigjort den hukommelse en session bruger istedet for som ved orca at bibeholde  sessionen.
Avatar billede orca Nybegynder
18. juni 2001 - 22:13 #3
det jeg har skrevet er tre forskellige sider jeg har.

På min login side laver jeg denne session:
Session(\"login\") = \"true\"

På alle sider som kun må kunne ses hvis man er logget ind er denne kode:
<%
If Session(\"login\") = \"true\" Then \'hvis brugeren er logget ind
else
Response.Redirect(\"loginside.asp\") \'hvis ikke brugeren er logget ind så gå til login side
End If
%>

Og hvis jeg vil logge ud så går jeg til en side ved navn logoff.asp som indeholder denne kode:
<%
Session(\"login\") = \"false\" \'sæt brugeren til ikke at være logget ind
Response.Redirect(\"loginside.asp\") \'før brugeren over til login siden
%>

Hvis ikke jeg brugte redirect så ville brugeren bare blive på den beskyttede side efter han havde trykket log ud. Ligeså ville brugeren blive på den beskyttede side hvis ikke jeg sendte ham væk hvis ikke han er logget ind.
Avatar billede orca Nybegynder
18. juni 2001 - 22:16 #4
Ok, jeg må give moonduck ret i at du kan svare 0.001 kb ram hvis du bruger Session(\"login\").Abandon i stedet for Session(\"login\") = false på logud siden... min fejl ;O).
Avatar billede orca Nybegynder
18. juni 2001 - 22:16 #5
svare=spare
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 22:43 #6
0,001 kb. som sendes med hvert request til serveren bliver hurtigt til mange da der sendes et request for hvert dokument, grafik e.lign. og hvis man har mange hits bliver det hurtigt til et stort load...
Avatar billede orca Nybegynder
18. juni 2001 - 22:45 #7
Du glemmer lige at sessionen ligger ikke på serveren og den bliver derfor ikke fyldt - sessionen ligger på klientens computer...
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 22:46 #8
Men stadigvæk sendes SessionID,et med i form af en Cookie som automatisk har flere properties som f.eks. udløbs dato domæne osv..
Avatar billede orca Nybegynder
18. juni 2001 - 22:50 #9
jeg kan ikke se på nogen måde hvordan serveren modtager noget af denne cookie!!! På hver side står der i ASP dokumentet at klientens IE skal tjekke om sessionen er = false eller true. Hvis den er = false så skal den gå til en login side. Hvis den er = true skal den ikke gøre noget. På INTET tidspunkt bliver serveren spurgt om noget!
Avatar billede tdaugaard Nybegynder
18. juni 2001 - 22:56 #10
orca:> Sorry, men moonduck har ret ... Serveren holder styr på SessionID\'s osv., men selve sessionen bliver gemt på brugerens computer i form af en cookie.
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 22:58 #11
tdaugaard>> Det er hårdt at give mig ret hva ;-)
Avatar billede orca Nybegynder
18. juni 2001 - 22:59 #12
damn... ok... så må jeg overgive mig. Jeg overgav mig dog også i starten og sagde at det er smartere at bruge Session(\"\").Abandon istedet for min løsning. - hvorfor begyndte diskussionen egentligt?
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 23:01 #13
Fordu du slog det hen som noget ubetydeligt, hvilket det absolut ikke er, men lad nu det ligge...
Avatar billede tdaugaard Nybegynder
18. juni 2001 - 23:02 #14
moonduck:> nopes..ikke hårdt .. ret skal være ret, men jeg kæmper for min :-) Men da du HAR ret så er der jo intet at kæmpe for *G*
Avatar billede idiotbarn Nybegynder
18. juni 2001 - 23:05 #15
Hvad er forskellen på:
Request.Form.Item
Og:
Request.Form
-Brian
Avatar billede orca Nybegynder
18. juni 2001 - 23:07 #16
Jeg synes også vi skal stoppe men jeg vil lige have en afsluttende kommentar... Dette er et citat:

Ok, jeg må give moonduck ret i at du kan svare 0.001 kb ram hvis du bruger Session(\"login\").Abandon i stedet for Session(\"login\") = false på logud siden... min fejl ;O).

Det er min undskyldning for at jeg lavede en fejl... Lige præcis hvor siger jeg at det er ubetydeligt?
Avatar billede idiotbarn Nybegynder
18. juni 2001 - 23:10 #17
også lige, hvad gør:
Request.ServerVariables.Item(\"SCRIPT_NAME\")
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 23:12 #18
Request.Form er en \"genvej\" til Request.Form.Item men når vi er oppe i dette led er det kun af skønhedshensyn jeg medtager det da Item er den første metode der kigges.
Avatar billede jmc Nybegynder
19. juni 2001 - 16:33 #19
en tak til jer begge!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester