18. juni 2001 - 19:46Der 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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.
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.
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).
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...
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!
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.
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?
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?
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.
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.