آموزش 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
حمایت نمایید :