PDA

View Full Version : سوال: نمایش افراد آنلاین



Mohammad_dn
یک شنبه 18 بهمن 1394, 18:25 عصر
سلام
چطور میتونم بفهمم یک کاربر آنلاین هست یا نه؟

amir_T_2008
دوشنبه 19 بهمن 1394, 00:34 صبح
اگه از خود membership استفاده میکنید که خودش داره و میتونید تو گوگل جستجو کنید و خیلی اطلاعات دیگه علاوه بر آنلاین بودن بدست بیارید اگرم خودتون دارید سیستم طراحی میکنید یک فیلد از نوع bit بذارید که بعد از ورود از 0 به 1 تغییر کنه و یه خروجی بذارید برای خودتون که بیاد اونایی توی جدول اونایی که فیلد از نوع 1 هستشو ، username نمایش بده.

موفق باشید

Mohammad_dn
دوشنبه 19 بهمن 1394, 15:20 عصر
من جدول کاربرارو خودم طراحی کردم و از ممبرشیپ استفاده نکردم....موقهی که کتربر وارد سایت میشه رو مشکل ندارم(انلاین کردن کاربر)...با آفلاین کردم کاربر مشکل دارم...یعنی میخوام بعد از تموم شدن سشن خود به خود آفلاین بشه...اما توی sessionend که توی global هست نمیتونم اینکارو انجام بدم

mehrzad_ali
دوشنبه 19 بهمن 1394, 15:57 عصر
protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application.UnLock();
}


protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}

Mohammad_dn
دوشنبه 19 بهمن 1394, 18:34 عصر
protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application.UnLock();
}


protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}


اینو بلدم..این تعداد افراد آنلاینو نشون میده

من میخوام بدونم مثلا کاربری با نام کاربریه Mohammad_dn الآن آنلاین هست یا نه(مثل همین سایت که اگه انلاین باشه یه چراغ سبط رنگ جلوش میزاره)

volcano_c
دوشنبه 19 بهمن 1394, 19:49 عصر
سلام

از کدهای زیر استفاده کنید
به جای username نام کاربر لاگین شده را اضافه نمایید

void Application_Start(object sender, EventArgs e) {

Application.Lock();
Application["OnlineUsers"] = new List<string>();
Application.UnLock();

}


void Session_Start(object sender, EventArgs e)
{
Application.Lock();
((List<string>)Application["OnlineUsers"]).Add("username");
Application.UnLock();
}


void Session_End(object sender, EventArgs e)
{


Application.Lock();
((List<string>)Application["OnlineUsers"]).Remove("username");
Application.UnLock();
}

bomb23
سه شنبه 20 بهمن 1394, 07:32 صبح
اگه تعداد دقیق رو میخوای از گوگل آنالیتیک استفاده کن.
اگه میخوای خودت بنویسی و دقیق باشه باید از signalr استفاده کنی. روش ها دیگه دقیق نیستن و نتیجه درستی بهت نمیدن.

Mohammad_dn
شنبه 24 بهمن 1394, 10:09 صبح
سلام

از کدهای زیر استفاده کنید
به جای username نام کاربر لاگین شده را اضافه نمایید

void Application_Start(object sender, EventArgs e) {

Application.Lock();
Application["OnlineUsers"] = new List<string>();
Application.UnLock();

}


void Session_Start(object sender, EventArgs e)
{
Application.Lock();
((List<string>)Application["OnlineUsers"]).Add("username");
Application.UnLock();
}


void Session_End(object sender, EventArgs e)
{


Application.Lock();
((List<string>)Application["OnlineUsers"]).Remove("username");
Application.UnLock();
}

خوب نام کاربری من ثابت نیست که...من از کد زیر برای گرفتن نام کاربر(وقتی کاربر لاگین کرده) استفاده میکنم

User.Identity.Name

وقتی از این کد توی Session_End استفاده میکنم (به صورت زیر) کار نمیکنه و کاربر رو آفلاین نمیکنه

Application.Lock();
((List<string>)Application["OnlineUsers"]).Remove(User.Identity.Name);

Application.UnLock();

Mohammad_dn
دوشنبه 26 بهمن 1394, 11:48 صبح
لطفا یکی راهنمایی کنه

Mohammad_dn
چهارشنبه 28 بهمن 1394, 11:42 صبح
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

volcano_c
سه شنبه 11 آبان 1395, 23:02 عصر
به نظر من اگر زمانیکه User لاگین می کنه نام کاربری یا ID رو داخل Session بذاری موقع رویداد Session_End راحت با استفاده از آن می تونی User را از لیست خارج کنی


خوب نام کاربری من ثابت نیست که...من از کد زیر برای گرفتن نام کاربر(وقتی کاربر لاگین کرده) استفاده میکنم

User.Identity.Name

وقتی از این کد توی Session_End استفاده میکنم (به صورت زیر) کار نمیکنه و کاربر رو آفلاین نمیکنه

Application.Lock();
((List<string>)Application["OnlineUsers"]).Remove(User.Identity.Name);

Application.UnLock();