Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent AJAX polling keeping Asp.Net sessions alive

We have a ASP.Net application that has been given a 20 minute sliding expiry for the session (and cookie). However, we have some AJAX that is polling the server for new information. The downside of this of course is that the session will continue indefinitely, as it is being kept alive by the polling calls causing the expiry time to be refreshed. Is there a way of preventing this - i.e. to only allow the session to be refreshed on non-ajax calls?

Turning off sliding expiry is not really an option as this is an application that business users will be using for most of their day between telephone calls.

Other Stackoverflow discussions on this talk about maintaining 2 separate application (one for authenticated calls, one for unauthenticated. I'm not sure this will be an option as all calls need to be authenticated.

Any ideas?

like image 553
Greg Avatar asked Dec 06 '25 04:12

Greg


1 Answers

add below code to your controller action that you are reference for polling.Convert this into an attribute so it can be used everywhere. This line will not extend session timeout

    [HttpPost]
    public ActionResult Run()
    {
        Response.Cookies.Remove(FormsAuthentication.FormsCookieName);

        return Json("");
    }
like image 175
saif iqbal Avatar answered Dec 07 '25 20:12

saif iqbal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!