Avatar billede llcoolj Nybegynder
16. oktober 2002 - 08:47 Der er 13 kommentarer og
1 løsning

Lukke session når side forlades- How?

Jeg er ved at pakke min applikation ind bag en loginside, men jeg har det problem at jeg ikke kan lukke min session når siden forlades.
Jeg ved at jeg skal anvende Session.Abandon(), men har hidtil ikke kunnet finde en måde at definere således at det kun sker når siden lukkes....
Det skal lige siges at alle mine side vise i en frame hovedside...
Avatar billede simon.ulsnes Nybegynder
16. oktober 2002 - 14:02 #1
Det kan ikke lade sig gøre for dig at finde ud af hvornår en given bruger forlader en given side. Det du kan gøre, er at lave en time-out på din session og i øvrigt en logout-knap.

// Simon
Avatar billede cms Nybegynder
16. oktober 2002 - 15:05 #2
ja - og evt. en
<body onunload="window.open('logout.aspx')">
Avatar billede simon.ulsnes Nybegynder
16. oktober 2002 - 15:18 #3
Orv, ja, det var faktisk en udmærket ide... Husk så bare at sørge for at logout.aspx automatisk lukker sit vindue.
Avatar billede cms Nybegynder
16. oktober 2002 - 15:28 #4
=)

logout.aspx:

<script runat="server">
  Session.Abandon();
</script>
<script language="javascript">
  window.close();
</script>

Derudover skal du huske på, at Session-ID'en som standard gemmes som en cookie, der expirer ligesåsnart browseren bliver lukket. Så du behøver i princippet slet ikke kode :)
Avatar billede simon.ulsnes Nybegynder
16. oktober 2002 - 15:32 #5
cms > ja, men husk på at problemet kommer når brugeren ikke lukker browseren, men surfer videre...
Avatar billede cms Nybegynder
16. oktober 2002 - 15:56 #6
Hvis man så tager chancen, så konkluderer man, at hvis mennesket bag skærmen udskiftes så lukkes browseren også.. =)
Avatar billede llcoolj Nybegynder
16. oktober 2002 - 16:16 #7
Hvad gør den der body onunload helt præcist?
Avatar billede cms Nybegynder
16. oktober 2002 - 16:27 #8
Det er den event som browseren invoker, når du browser væk fra en side eller manuelt lukker vinduet siden befinder sig i.
Dvs. at når brugeren forlader din side, hvor du har implementeret en onunload eventhandler med ovenstående jskode ("window.open('logout.aspx')") vil browseren åbne (window.open) et vindue med logout.aspx i. Logout.aspx kalder så serverside "Session.Abandon()", hvorefter den udskriver javascriptkode til at lukke sit vindue med.
Avatar billede llcoolj Nybegynder
16. oktober 2002 - 19:54 #9
Vil det sige at jeg kan i den logout.aspx side som jeg så skal lave, kan placere Session.Abandon() i Page_Load, eller hvordan skal det helt præcist implementeres? Jeg ville være meget taknemmelig for eksempler. (jeg koder i C#- hvis I evt. skulle have eksempler).
Avatar billede cms Nybegynder
16. oktober 2002 - 23:38 #10
ja det skal du.
Avatar billede llcoolj Nybegynder
17. oktober 2002 - 11:25 #11
Jeg kan vel ikke gøre det ved hjælp af body onunload - da min hovedside er opbygget med frames?
Avatar billede cms Nybegynder
17. oktober 2002 - 13:16 #12
Der bliver jo kaldt en body onunload på alle de sider i dit frameset der har angivet en handler for eventen.
Avatar billede llcoolj Nybegynder
17. oktober 2002 - 15:05 #13
Har løst det ved at sætte en onunload på min hovedside:

<html>
<head>
    <title>PCV-Kvartalsrapport</title>
    <link media="screen" href="Style/WMstyle.css" type="text/css" rel="stylesheet" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
</head>
<frameset border="0" framespacing="0" rows="10%,90%" frameborder="0" onunload="window.open('Logout.aspx')">
    <frame name="Head" marginwidth="0" marginheight="0" src="Head.htm" scrolling="no" />
    <frameset border="0" framespacing="0" frameborder="0" cols="160, 4*" onunload="window.open('Logout.aspx')">
        <frame name="Menu" marginwidth="0" marginheight="5" src="Menu.aspx" noresize="noresize" scrolling="auto" />
        <frame name="Main" marginwidth="10" marginheight="10" src="Main.aspx" scrolling="auto" />
    </frameset>
</frameset>
</html>

Logout side ser ud som nedenstående:
<%@ Page Language="C#" %>
<script runat="server">

    private void Page_Load(Object sender, EventArgs e)
    {
    Session.Abandon();
    }

</script>
<html>
<head>
    <script language="javascript">
  window.close();
</script>
</head>
<body>
    <form runat="server">
       
    </form>
</body>
</html>

Når den i Page_Load således lukker Sessionerne - er jeg sikret så vidt jeg kan se når man vælger at forlade siden!!

-> CMS - læg lige et svar så du kan få nogle point :)
Avatar billede cms Nybegynder
17. oktober 2002 - 15:09 #14
thx =)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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