PDA

برای دیدن نسخه كامل اینجا را كلیك كنید : نمایش لیست کاربران آنلاین



taghtagh
2012/1/04, 08:42 PM
سلام دوستان و خسته نباشید.
من یه سوال دارم : از من لیست کاربران آنلاین رو خواستن ، کاری که الان انجام دادم اینه که یه فیلد تو دیتابیس گزاشتم isonline که موقع لاگین true میشه و موقع logout یا موقع رخ دادن session end این فیلد false میشه ، معمولی که کار میکنم درسته منتها بعضی وقتا (احتمالا به خاطر آنلاین شده کاربرای زیاد) سشن ها از بین میرن ، کاربر برمیگرده صفحه لاگین ، رویداد session end هم اجرا میشه ولی سشن مربوط به یوزر من از بین رفته و نمیدونه باید چه کاربری رو آفلاین کنه :( ، شما ها برای لیست کاربرای آنلاین چیکار میکنین ؟ تعداد نمیخوام ها ، اسماشون رو میخوام ؟
مــــــــــــــــــــــرس ی

negin17h
2012/1/13, 07:24 PM
سلام دوستان و خسته نباشید.
من یه سوال دارم : از من لیست کاربران آنلاین رو خواستن ، کاری که الان انجام دادم اینه که یه فیلد تو دیتابیس گزاشتم isonline که موقع لاگین true میشه و موقع logout یا موقع رخ دادن session end این فیلد false میشه ، معمولی که کار میکنم درسته منتها بعضی وقتا (احتمالا به خاطر آنلاین شده کاربرای زیاد) سشن ها از بین میرن ، کاربر برمیگرده صفحه لاگین ، رویداد session end هم اجرا میشه ولی سشن مربوط به یوزر من از بین رفته و نمیدونه باید چه کاربری رو آفلاین کنه :( ، شما ها برای لیست کاربرای آنلاین چیکار میکنین ؟ تعداد نمیخوام ها ، اسماشون رو میخوام ؟
مــــــــــــــــــــــرس ی

نباید مشکلی پیش بیاد در صورتی که از Signout استفاده کنید برای صفحه. session ها سمت کلاینت هست. اگر هر کلاینت تنها در آن واحد با یک آی دی بتونه وارد شه مشکلی پیش نمیاد :gol:

Sharif_
2012/1/13, 10:46 PM
والا اطلاع زیادی در مورد Asp.net ندارم ولی تا اونجایی که سوادم قد میده فکر کنم شما از SessionID به عنوان شناسایی کاربر استفاده نمی کنید
البته کلاس های بهتری هم برای این کار وجود داره
برای شما بهتره همون جا که فیلد isonline رو ایجاد کردید یک فیلد SessionID هم اضافه کنید و در رخداد SessionEnd کاربر رو با استفاده از ID از لیست افراد آنلاین حذف کنید

taghtagh
2012/1/14, 06:45 PM
نباید مشکلی پیش بیاد در صورتی که از Signout استفاده کنید برای صفحه. session ها سمت کلاینت هست. اگر هر کلاینت تنها در آن واحد با یک آی دی بتونه وارد شه مشکلی پیش نمیاد :gol:
http://l.yimg.com/pu/emoticon/v2/39.gif سشن سمت سروره نه کلاینت ، لوکال هم مشکلی نداشتم ولی وقتی آپلود شد این مشکل پیش اومد :(




والا اطلاع زیادی در مورد Asp.net ندارم ولی تا اونجایی که سوادم قد میده فکر کنم شما از SessionID به عنوان شناسایی کاربر استفاده نمی کنید
البته کلاس های بهتری هم برای این کار وجود داره
برای شما بهتره همون جا که فیلد isonline رو ایجاد کردید یک فیلد SessionID هم اضافه کنید و در رخداد SessionEnd کاربر رو با استفاده از ID از لیست افراد آنلاین حذف کنید

متوجه نشدم منظورتون از SessionID چی هست ؟ من سشن رو خودم میسازم ، Session["user"] ، که موقع لاگین ساخته میشه و موقع خروج یا وقتی که رویداد SessionEnd تو فایل Globa;.asax اجرا میشه این سشن از بین میره و قبل از، از بین رفتنش من فیلدم رو تو دیتا بیس فالس میکنم ، وقتی اون قسمتی رو که تو global.asax هست کامنت میکنم مشکل ندارن :(

Sharif_
2012/1/14, 07:33 PM
متوجه نشدم منظورتون از SessionID چی هست ؟ من سشن رو خودم میسازم ، Session["user"] ، که موقع لاگین ساخته میشه و موقع خروج یا وقتی که رویداد SessionEnd تو فایل Globa;.asax اجرا میشه این سشن از بین میره و قبل از، از بین رفتنش من فیلدم رو تو دیتا بیس فالس میکنم ، وقتی اون قسمتی رو که تو global.asax هست کامنت میکنم مشکل ندارن :(
هر جلسه ای که ایجاد می کنید به انحصار یک SessionID بهش تعلق میگیره
SessionID یک قسمت از کوکی هست که به مرورگر ارسال میشه
با استفاده از SessionID است که کوکی های سمت کلاینت رو به جلسه ذخیره شده در سرور وصل می کنیم
شما SessionID رو هم در بانک ذخیره کنید بعد میتونید فرد موردنظر رو پیدا و از لیست کاربران انلاین حذف کنید
اینا تجربه من تو PHP بود و اگر هم اشتباه نکنم می تونید با استفاده از دستور زیر SessionID جلسه فعال رو دریافت کنید


sSessionID = HttpContext.Current.Session.SessionID

یا وقتی جلسه رو ساختید ازSession.SessionID استفاده کنید

taghtagh
2012/1/15, 09:48 PM
ممنون دوستان ، یه مقاله دیدم در مورد کاربران آنلاین در ASP.net که استفاده کردم و فعلا که داره جواب میده :D ، اینم لینکش که دوستان دیگه هم بتونن استفاده کنن فقط یه دو تا for توش نوشته که شرطش جالب نیست و بعضی وقتا باگ میده ، اون for ها رو یه مدل دیگه بنویسین حله ، مثلا داره :
i!=dt.Rows.Count;
که بنویسیم : i < dt.Rows.Count بهتره و مشکلی پیش نمیاد

http://www.how2learnasp.net/pdf/8ae70d8c-6f62-4148-8089-71069693ae1f.pdf

(http://www.how2learnasp.net/pdf/8ae70d8c-6f62-4148-8089-71069693ae1f.pdf)

heil
2012/4/20, 07:45 PM
آی دی کاربران آنلاین رو توی لایه aplication (روی رم سرور) ذخیره کنید ....
اینجوری با ورود و خروج زیاد کاربران .... بابای دستابیستون در نمیاد ..
و با سرعت بسیار بالا هم بهش دسترسی خواهید داشت. >>>> مشکل منقضی شدن سشن هم نخواهید داشت ....
یا حق

heil
2012/4/20, 07:49 PM
مقالتو رو دیدم..


داره به همین روشی که بنده بیان کردم عمل میکنه .... ولی کار رو برای خودش خیلی سخت کرده

این کار خیلی ساده تر از اینا قابل انجامه.
یا حق