khazaei
11-02-2008, 09:52 AM
با استفاده از این ابزار که برای استفاده در ASP.NET نوشته شده است می توانید تعداد کاربران آنلاین در سایت خود را مشاهده کرده و یا حتی تعداد کاربران میهمان و عضو را از هم تفکیک کنید.
نصب و استفاده
پس از اینکه فایل مربوط ب این ابزار رو از اینترنت دانلود کردید باید یک رفرنس به این فایل بدهید. اگر با دادن رفرنس آشنا هستید پاراگراف بعدی رو مطالعه کنید.
برای دادن رفرنس ابتدا بر روی پروژه خود کلیک راست کرده و گزینه Add Reference رو انتخاب کنید، سپس فایل اسمبلی dll رو انتخاب کنید. بدین ترتیب اسمبلی به عنوان رفرنس به پروژه اضافه خواهد شد.
در ادامه باید این ابزار رو در لیست HttpModule ها اضافه کنید. برای این کار فایل web.config پروژه را باز کنید (در صورت عدم وجود از Add new item گزینه Web configuration file رو انتخاب کنید) و کد زیر را به آن اضافه کنید:
<httpModules>
<add name="OnlineActiveUsers" type="OnlineActiveUsers.OnlineUsersModule"/>
</httpModules>
سپس باید به رویداد session_end در فایل global.asax خود کدی رو اضافه کنید. برای این کار فایل global.asax را باز کنید و رویداد Session_End رو پیداد کرده و کد زیر در آن بنویسید.
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. UpdateForUserLeave()
نتیجه در #C باید چیزی مانند کد زیر باشد:
void Session_End(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. UpdateForUserLeave();
}
بدین ترتیب این ابزار به درستی راه اندازی شد و شروع به بعالیت خواهد کرد.
برای دسترسی به آمار کافیست که به متغیر OnlineActiveUsers.OnlineUsersInstance.OnlineUsers دسترسی پیدا کنید. در زیر تعدادی از ویژگی های مهم این کلاس رو برای شما شرح می دهم:
UsersCount: تعداد کل کاربران آنلاین در سایت شما را نشان می دهد.
GuestUsersCount: تعداد کل کاربران مهمان در سایت شما را نشان می دهد. این گزینه زمانی کار خواهد کرد که از توابع SetUserOffline و SetUserOnline که در ادامه توضیح داده خواهند شد به درستی استفاده کنید.
RegistredUsersCount: تعداد کاربران عضو و آنلاین در سایت شما را نشان می دهد. این گزینه زمانی کار خواهد کرد که از توابع SetUserOffline و SetUserOnline که در ادامه توضیح داده خواهند شد به درستی استفاده کنید.
محاسبه کاربران میهمان و عضو
برای محاسبه صحیح تعداد کاران عضو و میهمان تعدادی مراحل اضافیتر وجود دارد.
اولین حالت زمانی است که کاربر وارد سایت شما شده و login می کند. برای این منظور برنامه نویسان از روش های مختلفی استفاده می کنند که حالت استاندارد و ساده آن استفاده از کنترل Login در ASP.NET است. اگر شما از این کنترل استفاده نمی کنید روش بعدی را مطالعه نمایید.
در رویداد LoggedIn از کنترل Login باید کد زیر را بنویسید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(Login1.UserName)
نتیجه در #C باید چیزی مانند زیر باشد.
protected void Login1_LoggedIn(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(Login1.UserName);
}
با این کار مشخص می شود که این کاربر وارد سایت شده است و به عنوان کاربر عضو محاسبه خواهد شد.
روش دوم برای زمانی است که از کنترل Login استفاده نمی کتید و روش خواص خودتان را دارید، در این صورت تنها کاری که لازم است انجام دهید این است که پس از تایید هویت شدن کاریر از کد بالا با نام کاربری وارد شده استفاده کنید، برای تاکید دوباره ان کد را در زیر می نویسم:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(UserName)
دومین حالت زمانی این کاربر در سایت شما Login است و می خواهد از حساب خود در سایت خارج شود و یا اصطلاحا Logout کند. در صورتی که از کنترل LoginStatus استفاده می کنید می توانید کد مربوط به این عمل رو در رویداد LoggedOut مربوط به این کنترل بنویسید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(User.Identity.Name)
که نتیجه در #C مانند زیر خواهد بود:
protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(User.Identity.Name);
}
در اینجا User.Identity.Name نام کاربری است که کاربر قبلا با آن وارد سایت شده بود.
در حالت کلی برای اینکه کاربر در لیست محاسبه به عنوان اعضای آنلاین خارج شود باید از کد زیر بالا که برای تاکیید دوباره آن را در پایین می نویسم استفاده کتید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(UserName)
که در اینجا UserName نام کاربری است که کاربر قبلا با آن وارد سایت شده بود. دقت کنید این دقیقا باید همان کاربر باشد.
پس از انجام این مراحل ویژگی های GuestUsersCount و RegistredUsersCount به درستی کار خواهند کرد و به ترتیب تعداد کاربران میهمان و تعداد کاربران عضو را نمایش خواهند داد.
تعدادی از سایر ویژگی ها
•تابع IsOnline
این تابع جهت بررسی آنلاین بودن کاربر مورد استفاده قرار می گیرد. ورودی این تابع نام کاربری از نوع رشته و خروجی آن در صورت آنلاین بودن کاربر true در غیر این صورت false است.
•تابع GetLastActivity
این تابع زمان آخزین فعالیت کاربر را بر می گرداند. ورودی این تابع نام کاربری از نوع رشته و خروجی آن در صورتی که کاربر آنلاین باشد زمان آخرین فعالیت از نوع DateTime است در غیر صورت خروجی null که در vb.net مقدار nothing خواهد بود.
ضمایم
OnlineActiveUsers.zip
حجم : 20.00 KB دفعات دریافت : 56
Compiled assembly with source codes
نصب و استفاده
پس از اینکه فایل مربوط ب این ابزار رو از اینترنت دانلود کردید باید یک رفرنس به این فایل بدهید. اگر با دادن رفرنس آشنا هستید پاراگراف بعدی رو مطالعه کنید.
برای دادن رفرنس ابتدا بر روی پروژه خود کلیک راست کرده و گزینه Add Reference رو انتخاب کنید، سپس فایل اسمبلی dll رو انتخاب کنید. بدین ترتیب اسمبلی به عنوان رفرنس به پروژه اضافه خواهد شد.
در ادامه باید این ابزار رو در لیست HttpModule ها اضافه کنید. برای این کار فایل web.config پروژه را باز کنید (در صورت عدم وجود از Add new item گزینه Web configuration file رو انتخاب کنید) و کد زیر را به آن اضافه کنید:
<httpModules>
<add name="OnlineActiveUsers" type="OnlineActiveUsers.OnlineUsersModule"/>
</httpModules>
سپس باید به رویداد session_end در فایل global.asax خود کدی رو اضافه کنید. برای این کار فایل global.asax را باز کنید و رویداد Session_End رو پیداد کرده و کد زیر در آن بنویسید.
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. UpdateForUserLeave()
نتیجه در #C باید چیزی مانند کد زیر باشد:
void Session_End(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. UpdateForUserLeave();
}
بدین ترتیب این ابزار به درستی راه اندازی شد و شروع به بعالیت خواهد کرد.
برای دسترسی به آمار کافیست که به متغیر OnlineActiveUsers.OnlineUsersInstance.OnlineUsers دسترسی پیدا کنید. در زیر تعدادی از ویژگی های مهم این کلاس رو برای شما شرح می دهم:
UsersCount: تعداد کل کاربران آنلاین در سایت شما را نشان می دهد.
GuestUsersCount: تعداد کل کاربران مهمان در سایت شما را نشان می دهد. این گزینه زمانی کار خواهد کرد که از توابع SetUserOffline و SetUserOnline که در ادامه توضیح داده خواهند شد به درستی استفاده کنید.
RegistredUsersCount: تعداد کاربران عضو و آنلاین در سایت شما را نشان می دهد. این گزینه زمانی کار خواهد کرد که از توابع SetUserOffline و SetUserOnline که در ادامه توضیح داده خواهند شد به درستی استفاده کنید.
محاسبه کاربران میهمان و عضو
برای محاسبه صحیح تعداد کاران عضو و میهمان تعدادی مراحل اضافیتر وجود دارد.
اولین حالت زمانی است که کاربر وارد سایت شما شده و login می کند. برای این منظور برنامه نویسان از روش های مختلفی استفاده می کنند که حالت استاندارد و ساده آن استفاده از کنترل Login در ASP.NET است. اگر شما از این کنترل استفاده نمی کنید روش بعدی را مطالعه نمایید.
در رویداد LoggedIn از کنترل Login باید کد زیر را بنویسید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(Login1.UserName)
نتیجه در #C باید چیزی مانند زیر باشد.
protected void Login1_LoggedIn(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(Login1.UserName);
}
با این کار مشخص می شود که این کاربر وارد سایت شده است و به عنوان کاربر عضو محاسبه خواهد شد.
روش دوم برای زمانی است که از کنترل Login استفاده نمی کتید و روش خواص خودتان را دارید، در این صورت تنها کاری که لازم است انجام دهید این است که پس از تایید هویت شدن کاریر از کد بالا با نام کاربری وارد شده استفاده کنید، برای تاکید دوباره ان کد را در زیر می نویسم:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(UserName)
دومین حالت زمانی این کاربر در سایت شما Login است و می خواهد از حساب خود در سایت خارج شود و یا اصطلاحا Logout کند. در صورتی که از کنترل LoginStatus استفاده می کنید می توانید کد مربوط به این عمل رو در رویداد LoggedOut مربوط به این کنترل بنویسید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(User.Identity.Name)
که نتیجه در #C مانند زیر خواهد بود:
protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(User.Identity.Name);
}
در اینجا User.Identity.Name نام کاربری است که کاربر قبلا با آن وارد سایت شده بود.
در حالت کلی برای اینکه کاربر در لیست محاسبه به عنوان اعضای آنلاین خارج شود باید از کد زیر بالا که برای تاکیید دوباره آن را در پایین می نویسم استفاده کتید:
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(UserName)
که در اینجا UserName نام کاربری است که کاربر قبلا با آن وارد سایت شده بود. دقت کنید این دقیقا باید همان کاربر باشد.
پس از انجام این مراحل ویژگی های GuestUsersCount و RegistredUsersCount به درستی کار خواهند کرد و به ترتیب تعداد کاربران میهمان و تعداد کاربران عضو را نمایش خواهند داد.
تعدادی از سایر ویژگی ها
•تابع IsOnline
این تابع جهت بررسی آنلاین بودن کاربر مورد استفاده قرار می گیرد. ورودی این تابع نام کاربری از نوع رشته و خروجی آن در صورت آنلاین بودن کاربر true در غیر این صورت false است.
•تابع GetLastActivity
این تابع زمان آخزین فعالیت کاربر را بر می گرداند. ورودی این تابع نام کاربری از نوع رشته و خروجی آن در صورتی که کاربر آنلاین باشد زمان آخرین فعالیت از نوع DateTime است در غیر صورت خروجی null که در vb.net مقدار nothing خواهد بود.
ضمایم
OnlineActiveUsers.zip
حجم : 20.00 KB دفعات دریافت : 56
Compiled assembly with source codes