asp.netsessionlifetimepessimistic

ASP.NET session object lifetime pessimistic assumption !


I check a session object and if it does exist then call another method which would use that object indirectly. Although the second method would access this object in a few nanoseconds I was thinking of a situation when the object exactly expires between two calls. Does Session object extends its lifetime on every read access from code for preventing such a problem ? If not how to solve the problem ?

If you are going to say why I don't pass the retrieved object from first method to second one, this is because I pass the ASP.NET Page object which carries many other parameters inside it to second method and if I try to pass each of them separately, there would be many parameters while I just pass one Page object now.


Solution

  • Don't worry, this won't happen

    If I understand your situation it works sort of this way:

    1. Access a certain page
    2. If session is active it immediately redirects to the second page or executes a certain method on the first page.
    3. Second page/method uses session

    You're afraid that session will expire between execution of the first and second method/page.

    Basically this is impossible since your session timer was reset when just before the first page starts processing. So if the first page had active session then your second page/method will have it as well (as long as processing finishes before 20 minutes - default session timeout duration).

    How is Session processed

    Session is processed by means of an HTTP Module that runs on every request and before page starts processing. This explains the behaviour. If you're not familiar with HTTP Modules, then I suggest you read a bit about IHttpModule interface.