15. september 2003 - 17:58Der er
5 kommentarer og 1 løsning
Redirect til login ved back i browser
Har en webapplikation med en loginside, samt en søge- og resultatside. Brugeren logger ind, foretager en søgning og resultatet vises.
Problem: Når brugeren, efter at have fået vist resultatsiden, forlader applikationen ved at gå til en anden side, eksempelvis dr.dk, skal det ikke være muligt at tilgå/se resultatsiden via "Back" i browseren. Brugeren skal i dette tilfælde redirectes til loginsiden ... også selvom sessionen ikke er udløbet. Med andre ord, resultatsiden skal ikke kunne nåes via "Back" hvis brugeren har været en smuttur "ude i verden". Hvis brugeren forlader webapplikationen, ved at gå til en anden URL, skal det svare til at sessionen timer ud.
Jeg har sikret at intet caches i browseren og i de tilfælde hvor sessionen udløber mens brugeren er udenfor webapplikationen, redirectes der korrekt til loginsiden når brugeren forsøger at vende tilbage. Problemet er altså hvordan jeg ved at brugeren har forladt webapplikationen og efterfølgende prøver at se et "gammelt" resultat. Er det et spørgsmål om korrekt konfiguration således at webapplikationen "opdager" at brugeren forlader applikationen og kan resette connectionen herefter? Jeg kan ikke umiddelbart se at det kan løses via et par META-TAGS, eftersom jeg jo ikke ønsker at opfriske resultatet men istedet undgå at brugeren ser det.
Jeg har overvejet et alternativ hvor det på resultatsiden checkes for om history har en next og i så fald om denne er indenfor webapp-domænet. Men jeg tror dog ikke helt selv på denne løsning. Det må være simplere, ik?
Jeg ville også have troet at det næsten var umuligt, men opdagede så lige at DanskeNetbank faktisk kan håndtere det ... tror jeg nok! Jeg fiflede lidt med alternativet, altså at anvende history til at checke om der skulle være en ukendt URL længere fremme i historikken. Men det holdt kun indtil jeg fandt ud af at IE (såvidt jeg kan se) ikke er helt fortrolig med history.next endnu.
Jeg lader den være åben et stykke tid endnu. Hvis der ikke sker mere, hælder jeg pointene på dig.
Jeg lavede en større web applikation i asp.net for ca. et halvt år siden, da jeg var i praktik. Der kunne man markere en property, og så kunne man ikke komme tilbage til siden ved hjælp af back knappen. Jeg har desværre ikke adgang til siden mere, så jeg kan ikke huske hvad den property gjorde.
Jeg ved godt du nok ikke kan bruge dette til noget, men når det kan lade sig gøre så nemt i asp.net, må der da også være en simpel måde til det i jsp.
Du gav mig faktsik en ide. Jeg forsøgte i onUnload at sætte location.replace=loginsiden således at et "Back" i browseren ville medføre et hop til login istedet for den oprindelige resultatside. Umiddelbart ville jeg tro at det kunne være løsningen, men IE 6.0 bryder sig vist heller ikke om location.replace ... såvidt jeg kan se.
Jeg prøver at se om jeg kan opstøve måden hvorpå dette klares i ASP.NET.
Brugte den gode gamle med at åbne webapplikationen i et selvstændigt vindue og undlade 'locationbar'.
Synes godt om
Ny brugerNybegynder
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.