آموزش ASP.Net > مدیریت شی Session > رویدادهای شی Session در ASP.Net

رویدادهای شی Session در ASP.Net :

ASP.Net دو رویداد را در اختیار ما قرار داده ، که به وسیله آن می توانیم Session های خود را مدیریت نماییم .
یکی رویداد Session_OnStart بوده که هر زمان Session ایجاد و شروع شود ، رخ داده و دیگری رویداد Session_OnEnd است که با متوقف یا منقضی شدن Session ، روی می دهد .
در ادامه به توضیحات بیشتر راجع به این رویداد و مثال های عملی کار با آنها می پردازیم :

رویداد Session_OnStart :

شما می توانید رویداد Session_OnStart را با اضافه کردن یک تابع به فایل Global.asax ( فایلی که به عنوان یک کلاس سراسری در پروژه یا وب سایت می تواند مورد استفاده قرار بگیرد ) ، مدیریت نمایید .
دستورات این تابع زمانی اجرا می شوند که یک درخواست در مرورگر که حاوی یک Session جدید است ، اجرا می شود .
یک Session جدید در برنامه زمانی شروع و اجرا می شود که درخواست اجرا کننده آن حاوی خاصیت SessionID نبوده و یا اینکه مقدار خاصیت SessionID آن ، متعلق به یک Session منقضی شده باشد .
راهنمایی : از این متد می توانید برای تعریف متغیرهای لازم ، چک دستورات اولیه و ... در هنگام اجرای یک Session جدید استفاده نمود .

رویداد Session_OnEnd :

شما می توانید رویداد Session_OnEnd را با اضافه کردن یک تابع به فایل Global.asax ( فایلی که به عنوان یک کلاس سراسری در پروژه یا وب سایت می تواند مورد استفاده قرار بگیرد ) ، مدیریت نمایید .
این رویداد زمانی اتفاق می افتد که متد Abondon شی Session ( متدی که باعث توقف کارایی آن شده ) فراخوانی می شود و یا اینکه شی Session منقضی می گردد .
یک شی Session زمانی منقضی می شود که مقدار دقایق تعیین شده در خاصیت TimeOut آن بدون رفرش شدن و فراخوانی مجدد Session به اتمام برسد .
راهنمایی : متد Session_OnEnd ، فقط زمانی اجرا و پشتیبانی می شود که مقدار خاصیت Mode در شی SessionState بر روی مقدار IsProc ، که مقدار پیش فرض نیز است ، تنظیم شده باشد .
نکته : اگر مقدار خاصیت Mode بر روی یکی از مقادیر StateServer یا SQLServer تنظیم شده باشد ، رویداد Session_OnEnd در فایل Global.asax نادیده گرفته می شود . همچنین اگر مقدار خاصیت Mode را بر روی Custom باشد ، یک کد دلخواه برای اجرای آن می توانید تعیین نمایید .
نکته 2 : شما می توانید از رویداد Session_OnEnd ، برای انجام اموری که می خواهید پی از اتمام کارتان با شی Session انجام دهید ، مثل پاکسازی متغیرها و یاآزادسازی فضاهای داده ای آن استفاده نمایید .

مثال عملی کار با رویدادهای شی Session :

مثال عملی :

VB کد <script language="VB" runat="server">
  Public Sub Application_OnStart( )
    Application("UsersOnline") = 0
  End Sub


  Public Sub Session_OnStart()
    Application.Lock()
    Application("UsersOnline") = CInt(Application("UsersOnline")) + 1
    Application.UnLock()
  End Sub

  Public Sub Session_OnEnd()
    Application.Lock()
    Application("UsersOnline") = CInt(Application("UsersOnline")) - 1
    Application.UnLock()
  End Sub

</script>
C# کد <script language="C#" runat="server">
  public void Application_OnStart()
    {
      Application["UsersOnline"] = 0;
    }

  public void Session_OnStart()
    {
      Application.Lock();
      Application["UsersOnline"] = (int)Application["UsersOnline"] + 1;
      Application.UnLock();
    }


  public void Session_OnEnd()
    {
      Application.Lock();
      Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;
      Application.UnLock();
    }

</script>


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1