How to end a session when the user closes the browser?

Discussion in 'ASP .Net' started by news.microsoft.com, Feb 1, 2005.

  1. Hi everyone,

    I need some help (may be in the form of some sample code) for the subject
    question.

    I have an ASP.NET/C# application. I need to do quite a few tasks when the
    session ends. I don't want to depend on the session timeout factor since it
    may end too soon or it may hang around too long. I can't find any event
    that fires when the browser closes. The Session_End event handler in the
    Global.asax does not execute until the timeout value expires. Also, when it
    does execute the Session_end, it seems that the session has already ended
    and so, I have no access to any of the session variables I was holding onto.

    Can anybody tell me the server side sequence of events and their handlers
    that get called when the user closes a browser? Does the browser inform the
    server that it is closing, so that I can do my cleanup?

    Any help is highly appreciated.

    Babu.
    news.microsoft.com, Feb 1, 2005
    #1
    1. Advertising

  2. news.microsoft.com

    Lionel LASKE Guest

    Unfortunatly, nothing happens on the server when the browser is closed.
    I'm afraid that you can't close the session without waiting the timeout and
    the "Session_End" event.

    Lionel.


    "news.microsoft.com" <> a écrit dans le message de
    news: ...
    > Hi everyone,
    >
    > I need some help (may be in the form of some sample code) for the subject
    > question.
    >
    > I have an ASP.NET/C# application. I need to do quite a few tasks when the
    > session ends. I don't want to depend on the session timeout factor since
    > it may end too soon or it may hang around too long. I can't find any
    > event that fires when the browser closes. The Session_End event handler
    > in the Global.asax does not execute until the timeout value expires.
    > Also, when it does execute the Session_end, it seems that the session has
    > already ended and so, I have no access to any of the session variables I
    > was holding onto.
    >
    > Can anybody tell me the server side sequence of events and their handlers
    > that get called when the user closes a browser? Does the browser inform
    > the server that it is closing, so that I can do my cleanup?
    >
    > Any help is highly appreciated.
    >
    > Babu.
    >
    >
    Lionel LASKE, Feb 1, 2005
    #2
    1. Advertising

  3. Thanks for the reply, Lionel. That was fast!

    OK, then, is there another event that fires before the call to the
    Session_End handler in the Global.asax? Because by the time the execution
    arrives at this handler, I have no access to any of the Session variables
    (It seems that the session has already been removed). If only I could find
    an event that fires with the session state intact just before the session
    closes.

    Babu.

    "Lionel LASKE" <> wrote in message
    news:...
    >
    > Unfortunatly, nothing happens on the server when the browser is closed.
    > I'm afraid that you can't close the session without waiting the timeout
    > and the "Session_End" event.
    >
    > Lionel.
    >
    >
    > "news.microsoft.com" <> a écrit dans le message de
    > news: ...
    >> Hi everyone,
    >>
    >> I need some help (may be in the form of some sample code) for the subject
    >> question.
    >>
    >> I have an ASP.NET/C# application. I need to do quite a few tasks when
    >> the session ends. I don't want to depend on the session timeout factor
    >> since it may end too soon or it may hang around too long. I can't find
    >> any event that fires when the browser closes. The Session_End event
    >> handler in the Global.asax does not execute until the timeout value
    >> expires. Also, when it does execute the Session_end, it seems that the
    >> session has already ended and so, I have no access to any of the session
    >> variables I was holding onto.
    >>
    >> Can anybody tell me the server side sequence of events and their handlers
    >> that get called when the user closes a browser? Does the browser inform
    >> the server that it is closing, so that I can do my cleanup?
    >>
    >> Any help is highly appreciated.
    >>
    >> Babu.
    >>
    >>

    >
    >
    news.microsoft.com, Feb 1, 2005
    #3
  4. re:
    > Unfortunatly, nothing happens on the server when the browser is closed.


    Right.

    re:
    > I'm afraid that you can't close the session without waiting the timeout
    > and the "Session_End" event.


    You can programmatically call Session.abandon
    to force the end of a session at any time.

    That won't help Babu at all, but ending the session *can* be
    done without the need to wait for the timeout or Session_End.

    One way to persist session values, so they're restored the next
    time the visitor returns, would be to dump the session values into
    a cookie named with the SessionID. Each time you add a Session
    variable, you add a cookie key with the variable's value.

    When the user returns, reading the cookie would enable
    you to set the same values to the current session.

    Alternately, you could dump the session values into a db table,
    using the SessionID as the key. Then, reading a simple cookie
    set with a key name = SessionID would allow you to set the
    current session values to the previous session values.

    Why you'd want to do that beats me, but it's not too hard to do.



    Juan T. Llibre
    ASP.NET MVP
    ===========
    "Lionel LASKE" <> wrote in message
    news:...
    >
    > Unfortunatly, nothing happens on the server when the browser is closed.
    > I'm afraid that you can't close the session without waiting the timeout
    > and the "Session_End" event.
    >
    > Lionel.
    >
    >
    > "news.microsoft.com" <> a écrit dans le message de
    > news: ...
    >> Hi everyone,
    >>
    >> I need some help (may be in the form of some sample code) for the subject
    >> question.
    >>
    >> I have an ASP.NET/C# application. I need to do quite a few tasks when
    >> the session ends. I don't want to depend on the session timeout factor
    >> since it may end too soon or it may hang around too long. I can't find
    >> any event that fires when the browser closes. The Session_End event
    >> handler in the Global.asax does not execute until the timeout value
    >> expires. Also, when it does execute the Session_end, it seems that the
    >> session has already ended and so, I have no access to any of the session
    >> variables I was holding onto.
    >>
    >> Can anybody tell me the server side sequence of events and their handlers
    >> that get called when the user closes a browser? Does the browser inform
    >> the server that it is closing, so that I can do my cleanup?
    >>
    >> Any help is highly appreciated.
    >>
    >> Babu.
    >>
    >>

    >
    >
    Juan T. Llibre, Feb 1, 2005
    #4
  5. Babu,

    You do have some limited possibilities. You can use
    Response.IsClientConnected. Google for it to find out how it can help.

    Eliyahu

    "news.microsoft.com" <> wrote in message
    news:...
    > Hi everyone,
    >
    > I need some help (may be in the form of some sample code) for the subject
    > question.
    >
    > I have an ASP.NET/C# application. I need to do quite a few tasks when the
    > session ends. I don't want to depend on the session timeout factor since

    it
    > may end too soon or it may hang around too long. I can't find any event
    > that fires when the browser closes. The Session_End event handler in the
    > Global.asax does not execute until the timeout value expires. Also, when

    it
    > does execute the Session_end, it seems that the session has already ended
    > and so, I have no access to any of the session variables I was holding

    onto.
    >
    > Can anybody tell me the server side sequence of events and their handlers
    > that get called when the user closes a browser? Does the browser inform

    the
    > server that it is closing, so that I can do my cleanup?
    >
    > Any help is highly appreciated.
    >
    > Babu.
    >
    >
    Eliyahu Goldin, Feb 1, 2005
    #5
  6. news.microsoft.com

    Kalyan Kumar Guest

    write session.RemoveAll()in the following code


    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires when the application ends
    Session.RemoveAll()
    End Sub

    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
    Kalyan Kumar, Feb 1, 2005
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. feng
    Replies:
    1
    Views:
    471
    Cowboy \(Gregory A. Beamer\)
    Dec 3, 2003
  2. =B=
    Replies:
    3
    Views:
    3,848
  3. Keith-Earl
    Replies:
    4
    Views:
    3,661
    =?Utf-8?B?Q293Ym95IChHcmVnb3J5IEEuIEJlYW1lcikgLSBN
    Nov 15, 2004
  4. Charlie@NISH
    Replies:
    3
    Views:
    791
    Marina
    Aug 30, 2005
  5. Rafael Chemtob

    session not being killed after user closes browser

    Rafael Chemtob, Feb 11, 2004, in forum: ASP General
    Replies:
    4
    Views:
    366
    Vilmar Brazão de Oliveira
    Feb 12, 2004
Loading...

Share This Page