<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Client Side Διαχωρισμός Browser Close Event από Browser Back/Forward Button Click Event</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/78235.aspx</link><pubDate>Thu, 15 Feb 2018 00:30:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:78235</guid><dc:creator>gstam78</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/78235.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=78235</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σας,&lt;/p&gt;&lt;p&gt;Ο παρακάτω javascript κώδικας που υπάρχει στη σελίδα: &lt;a href="https://www.codeproject.com/Tips/154801/How-to-end-user-session-when-browser-closed"&gt;https://www.codeproject.com/Tips/154801/How-to-end-user-session-when-browser-closed&lt;/a&gt; τερματίζει το session του χρήστη όταν αυτός κάνει κάνει κλικ εκτός της σελίδας, δηλαδή όταν κλείνει τον browser, όταν κάνει refresh τη σελίδα, όταν πατάει είτε το Βack, είτε το Forward Button κ.ο.κ.. Το ερώτημα είναι αν μπορεί να γίνει κάποια προσθήκη στον παρακάτω javascript κώδικα, ώστε όταν γίνεται capture είτε το Back, είτε το Forward Button Click Event, η μεταβλητή clicked να παίρνει την τιμή true (clicked=true), ούτως ώστε να μην τερματίζεται σ' αυτές τις περιπτώσεις το session. Η απαίτηση είναι το session να τερματίζεται μόνο όταν κλείνει ο browser, ή το tab του browser που τρέχει η εφαρμογή: &lt;br&gt;&lt;/p&gt;&lt;pre id="pre906046" style="margin-top:0px;" class="notranslate"&gt;&amp;lt;script language=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;javascript"&lt;/span&gt; type=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;text/javascript"&lt;/span&gt;&amp;gt;
    &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;&amp;lt;![CDATA[&amp;lt;/span /&amp;gt;&lt;/span&gt;

    &lt;span class="code-keyword"&gt;var&lt;/span&gt; clicked = &lt;span class="code-keyword"&gt;false&lt;/span&gt;;
    &lt;span class="code-keyword"&gt;function&lt;/span&gt; CheckBrowser() {
        &lt;span class="code-keyword"&gt;if&lt;/span&gt; (clicked == &lt;span class="code-keyword"&gt;false&lt;/span&gt;) {
            &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;Browser closed&lt;/span&gt;
        }
        &lt;span class="code-keyword"&gt;else&lt;/span&gt; {
            &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;redirected &lt;/span&gt;
            clicked = &lt;span class="code-keyword"&gt;false&lt;/span&gt;;
        }
    }

    &lt;span class="code-keyword"&gt;function&lt;/span&gt; bodyUnload() {

        &lt;span class="code-keyword"&gt;if&lt;/span&gt; (clicked == &lt;span class="code-keyword"&gt;false&lt;/span&gt;)&lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;browser is closed&lt;/span&gt;
        {
            &lt;span class="code-keyword"&gt;var&lt;/span&gt; request = GetRequest();

            request.open(&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;POST"&lt;/span&gt;, &lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;../LogOut.aspx"&lt;/span&gt;, &lt;span class="code-keyword"&gt;false&lt;/span&gt;);
            request.send();
            alert(&lt;span class="code-string"&gt;'&lt;/span&gt;&lt;span class="code-string"&gt;This is close'&lt;/span&gt;);
        }
    }
    &lt;span class="code-keyword"&gt;function&lt;/span&gt; GetRequest() {
        &lt;span class="code-keyword"&gt;var&lt;/span&gt; xmlhttp;
        &lt;span class="code-keyword"&gt;if&lt;/span&gt; (window.XMLHttpRequest) {&lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt; code for IE7+, Firefox, Chrome, Opera, Safari&lt;/span&gt;
            xmlhttp = &lt;span class="code-keyword"&gt;new&lt;/span&gt; XMLHttpRequest();
        }
        &lt;span class="code-keyword"&gt;else&lt;/span&gt; {&lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt; code for IE6, IE5&lt;/span&gt;
            xmlhttp = &lt;span class="code-keyword"&gt;new&lt;/span&gt; ActiveXObject(&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;Microsoft.XMLHTTP"&lt;/span&gt;);
        }
        &lt;span class="code-keyword"&gt;return&lt;/span&gt; xmlhttp;
} 
&amp;lt;/script&amp;gt;

&amp;lt;body onunload=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;bodyUnload();"&lt;/span&gt; onclick=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;clicked=true;"&lt;/span&gt;&amp;gt;&amp;lt;span style=&lt;span class="code-string"&gt;"&lt;/span&gt;&lt;span class="code-string"&gt;font-size: 9pt;"&lt;/span&gt;&amp;gt;  &lt;span class="code-keyword"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code-leadattribute"&gt;span&lt;/span&gt;&lt;span class="code-keyword"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre id="pre906046" style="margin-top:0px;" class="notranslate"&gt;Σας ευχαριστώ εκ των προτέρων.&lt;br&gt;&lt;/pre&gt;</description></item></channel></rss>