PDA

View Full Version : مشکل در Login



ar_monti@
چهارشنبه 16 مرداد 1387, 08:51 صبح
سلام
دوستان من در برنامه ام یک صفحه برای Login قرارداده ام و بخوبی کار میکند فقط مشکل من اینست که چگونه متوجه شوم 2 نفر با یک نام و یک پسورد وارد نشوند.
ممنون اگر پاسخ دهید.

merlin_vista
چهارشنبه 16 مرداد 1387, 09:44 صبح
دوست عزيز شما بايد يه جدول موقت توي ديتابيس بسازي مثلاً با نام Login .

وقتي كاربر لوگين كرد نام كاربري آن را در جدول Login ذخيره كن . و در اول كدهاي لوگين چك كن كه اگر نام كاربري در اين جدول وجود داره يعني قبلاً وارد شده . و پيغام بده / و اگر وجود نداره يعني قبلاً لوگين نكرده و وارد نشده كه شما اجازه وارد شدن ميدين .

در قسمت خروج (Logout ) هم نام كاربر را از جدول Login پاك كن .

به همين سادگي . . . .

jaza_sa
چهارشنبه 16 مرداد 1387, 10:23 صبح
دوست عزيز شما بايد يه جدول موقت توي ديتابيس بسازي مثلاً با نام Login .

وقتي كاربر لوگين كرد نام كاربري آن را در جدول Login ذخيره كن . و در اول كدهاي لوگين چك كن كه اگر نام كاربري در اين جدول وجود داره يعني قبلاً وارد شده . و پيغام بده / و اگر وجود نداره يعني قبلاً لوگين نكرده و وارد نشده كه شما اجازه وارد شدن ميدين .

در قسمت خروج (Logout ) هم نام كاربر را از جدول Login پاك كن .

به همين سادگي . . . .

چقدر سخت . . . .
در این روش ، وقتی کاربر Login میکنه ، اول باید بره تو جدول Temp رو بگرده ، اگر نبود ، بره تو جدول User و اونجا UserName و Password رو چک کنه.

اگر تو جدول User یک ستونی با نام مثلا IsOnline از نوع bit باشه و هر وقت کاربر Login میکنه مقدار این عبارت True بشه ، دیگه نیاز به دوبار مراجعه به دیتابیس برای چک کردن آنلاین بودن کاربر نیست

merlin_vista
چهارشنبه 16 مرداد 1387, 12:59 عصر
چقدر سخت . . . .
در این روش ، وقتی کاربر Login میکنه ، اول باید بره تو جدول Temp رو بگرده ، اگر نبود ، بره تو جدول User و اونجا UserName و Password رو چک کنه.

اگر تو جدول User یک ستونی با نام مثلا IsOnline از نوع bit باشه و هر وقت کاربر Login میکنه مقدار این عبارت True بشه ، دیگه نیاز به دوبار مراجعه به دیتابیس برای چک کردن آنلاین بودن کاربر نیست

آره خوب اينم ميشه .
ولي يه مشكل هست . كه اگر كاربر به وارد سايت بشه ؛ ولي از سايت خارج نشه و پنجره را ببنده اون وقت چي .
هم در روشي كه من گفتم هم از تو اين مشكل وجو داره .

من قبلاً پرسيدم اين مشكل را تو فروم و آقاي راد گفتند از Cache استفاده كن.من هم يه كارهاي كردم ولي درست كار نداد . اگه تو تونستي اينجا هم بگو !! :متفکر:

jaza_sa
چهارشنبه 16 مرداد 1387, 20:06 عصر
آره خوب اينم ميشه .
ولي يه مشكل هست . كه اگر كاربر به وارد سايت بشه ؛ ولي از سايت خارج نشه و پنجره را ببنده اون وقت چي .
هم در روشي كه من گفتم هم از تو اين مشكل وجو داره .

من قبلاً پرسيدم اين مشكل را تو فروم و آقاي راد گفتند از Cache استفاده كن.من هم يه كارهاي كردم ولي درست كار نداد . اگه تو تونستي اينجا هم بگو !! :متفکر:

راسش من با Cache خیلی کار نکردم و بیشتر از Session استفاده میکنم
هنگام Expire شدن Session یک متد باید فراخوانی بشه که مقدار اون متغیر رو False کنه ولی من تا حالا این رو امتحان نکردم

mostafa_sgh
چهارشنبه 16 مرداد 1387, 20:13 عصر
سلام دوست عزیز

شما این کار رو داخل فایل Global.asax میتونی انجام بدی. ( اگه نداری اونو به پروژت اضافه کن )

البته تحت شرایطی کار میکنه که اونم توی توضیحات واضحه ....

این هم یه لینک داغ برای حل این مساله : لینک (http://www.eggheadcafe.com/articles/20030416.asp)

salehbagheri
جمعه 18 مرداد 1387, 00:38 صبح
خوش تيپ! اگه از كنترل هاي Login استفاده كرده باشي و اگر موقع ثبت كاربران از كنترل CreateUser اصلا به اين مشكل بر نمي خوري! چون هيچگاه دو نفر با يك نام كاربري نمي توانند ثبت نام كنند، چه برسه به اين كه بخواهند وارد سايت بشن!!!!!

اگر هم از كنترل دست ساخت خودت استفاده كردي! مشكل پيدا مي كني خفن!!!!!!!
چون يك مدت كه كار كني تازه مي فهمي كه .... بله .....

hadi000333
جمعه 18 مرداد 1387, 01:50 صبح
اگه با Membership آشنایی خوبی داشته باشی اینطوری خیلی راحت مشکلت حل می شه چون خود Asp,net با استفاده از روش Provider model این فریم ورک رو طراخی کرده و اون مطالبی که در بالا گفتید رو پیاده سازی کرده در رویداد مربوط به Login :


if (Membership.GetUser("UserName").IsOnline)
{
//Err Occured On Login
}
else
{
//Do Login Successfull
}