Avatar billede DK_Bear Praktikant
09. juni 2011 - 12:39 Der er 13 kommentarer og
1 løsning

Beskyttelse mod flere logins af samme navn

Jeg sidder og roder med en hjemmeside jeg skal ha lavet til en og skal ha lavet et check for multiple logins og hvis de bare lukker browseren, jeg gemmer en SessionID i databasen, men hvad nu hvis der lukkes for browseren, hvordan kan jeg slette SessionID i DBen, det virker jo fint :-) hvis brugeren logger rigtig ud, men hvis nu de bare lukker browseren, hvad så??
Avatar billede softspot Forsker
09. juni 2011 - 12:54 #1
Du kan blot lade det sidste login være det gyldige.

Det betyder at du skal holde styr på det senest benyttede sessionid og afvise forespørgsler med sessionsid'er, som ikke matcher det aktuelt aktive.
Avatar billede keysersoze Guru
09. juni 2011 - 13:01 #2
tag et kig på session_onend i global.asa - her bør du kunne logge brugeren ud ved timeout.
Avatar billede softspot Forsker
09. juni 2011 - 13:18 #3
Logud ved Session_OnEnd vil stadig spærre for at brugeren kan logge på indtil session er udløbet.

Det betyder i praksis, at lukker brugeren sin browser og umiddelbart efter åbner en ny og forsøger at logge på, så vil brugeren blive afvist.
Avatar billede keysersoze Guru
09. juni 2011 - 13:33 #4
korrekt, men jeg læste nu heller ikke noget om spærring eller lignende, kun at undgå at brugeren optræder flere gange. Hvis indloggede brugere gemmes i databasen må det være fordi den liste af brugere benyttes til "noget" og så er det måden at rydde op på.

Lader man kun sidste login optræde i listen kan det, selvfølgelig alt afhængig af hvad data benyttes til, også give nogle problemer da det vel også skal være muligt at være logget på flere steder samtidig.

Så det der søges er formentlig en kombination samt ikke mindst en DISTINCT på den SQL der evt udvælger alle indloggede.
Avatar billede softspot Forsker
09. juni 2011 - 13:47 #5
Jeg opfattede spørgsmålets overskrift som en indikation af, at en bruger ikke måtte være logget på flere gange, så derfor mit foreslag til strategi om "sidste login gælder".
Avatar billede keysersoze Guru
09. juni 2011 - 14:05 #6
skal da heller ikke afvise at jeg tager fejl - min kommentar var heller ikke et oplæg til at din kommentar var forkert, kun en ekstra mulighed.

Men mon ikke spørger vender tilbage :)
Avatar billede DK_Bear Praktikant
24. juni 2011 - 00:26 #7
Først vil jeg undskylder for at ikke at være tilbage efter svar, men har haft travlt med andet :)

Jeg er en Grønært til det meste koding, men det jeg er ude efter er  at jeg jo ikke kan vide om de bare har lukket deres browser uden at først at logge ud, ved alm. udlogning kan jeg jo bare slette værdien i databasen, men hvorn kan jeg checke om de ikke er online og slette værdien lige præcis for den person?
Kna jeg sætte en værdi i en session og derefter checke den ved session_onend, er lidt rådvild, for vil ski gerne har det til at virker i ASP (classic) eller på anden måde og hvordan?

Mvh, DK_Bear
Avatar billede keysersoze Guru
24. juni 2011 - 20:05 #8
hvis det allerede er sessionid du styrer dine data ud fra så kan du bare benytte netop sessionid i din session_onend til at slette de nødvendige data - ingen grund til at gemme flere værdier i session.
Avatar billede DK_Bear Praktikant
25. juni 2011 - 16:55 #9
Tanke Torsk fra min siden af, det var lige det der skulle til, nu er det bare en balanceart og finde ud af hvor stor timeout´ten skal være...

Det virker perfekt nu :-)
Avatar billede keysersoze Guru
25. juni 2011 - 18:47 #10
Vær dog opmærksom på, som også tidligere skrevet, at du ikke kan være sikker på at din session_onend bliver kørt - dette kan fx være tilfældet ved nedbrud. Sørg derfor for at der også bliver ryddet op på et passende andet tidspunkt - dette kunne måske være application_start.
Avatar billede keysersoze Guru
25. juni 2011 - 18:48 #11
og det var et svar :)
Avatar billede DK_Bear Praktikant
25. juni 2011 - 23:39 #12
Tusind Tak, et kommet videre med det betet problem...

Du kunne måske også være behjælplig med et dumt lille problem (er grønært endnu)

Txt = "Morgen|Dag|Aften|Nat"
Det jeg er ude efter er at jeg skal ha den sidste værdi efter den sidste | længden på teksten kan varierer, skal bare ha værdi bagfra til den føste |

Mvh DK_Bear
Avatar billede keysersoze Guru
26. juni 2011 - 00:16 #13
Avatar billede DK_Bear Praktikant
28. juni 2011 - 12:13 #14
TAkker
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

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



IT-JOB

IT & Co ApS

IT-tekniker

Udviklings- og Forenklingsstyrelsen

IAM-medarbejder

Børns Vilkår

IT Supporter (Valby)

Azets Insight A/S

QA Test Analyst