c# - How does ASP.NET know to create the ASP.NET_SessionId cookie if Session_Start is defined? -
i've done quite bit of testing on this, , i'm thoroughly confused. seems asp.net generate asp.net_sessionid cookie if session_start method in mvcapplication class defined, if i'm not using session variable anywhere. seems odd, considering there doesn't have in method's body.
example (global.asax.cs):
using system.web.mvc; using system.web.optimization; using system.web.routing; namespace myapplication { public class mvcapplication : system.web.httpapplication { protected void application_start() { arearegistration.registerallareas(); filterconfig.registerglobalfilters(globalfilters.filters); routeconfig.registerroutes(routetable.routes); bundleconfig.registerbundles(bundletable.bundles); } private void session_start() { } // takes generate sessionid (?) } } now, i'm confused multiple reasons:
how mere presence of
session_startfunction enough generate sessionid? i'm not utilizingsessionvariable anywhere in application, , method empty.the
session_startmethod private, , i'm not calling anywhere inside class, how asp.net know when session starts?how outside of class know
session_startmethod exists, , check sessionid cookie? isn't partial class, , it's explicitly markedprivate.
i know these reasons sort of blend 1 another, i'm @ loss how works.
session_start event handler application. when new session created, method called application. not create session ids, meant way developer know when user visits site first time (that session). can used run initialization routines or tracking purposes (e.g., had x number of unique sessions today).
what triggers creation of session , sessionid user visiting page has session enabled-- asp.net create session behind scenes. answer question has 2 ways of enabling session state pages: session state can used when enablesessionstate set true either in configuration
in summary:
in web.config, pages:
<system.web> <pages enablesessionstate="true" /> </system.web> in page.aspx, on per-page basis (set false turn off on per-page basis):
<%@page enablesessionstate="true"> your web.config should configure sessionstate mode. example of using server's memory store session state:
<sessionstate cookieless="false" mode="inproc" timeout="20" />
Comments
Post a Comment