PDA

View Full Version : جلوگیری از login کردن دو کاربر با یک username



asgari2005
جمعه 31 فروردین 1386, 11:35 صبح
سلام
1-چگونه می توان از loginکردن دو یا تعدادی کاربر با یک username جلوگیری کرد
2-اگر کاربری password خود را 3 بار اشتباه وارد کرد آن کاربر را به عنوان مثال برای 2 ساعت غیرفعال نمود البته ساعت و تعداد دفعات اشتباه وارد کردن رمز عبور به صورت قابل تعریف در سیستم پورتال باشد
اگر کسی در این زمینه کار کرده است لطفا سورس آن را در وب سایت قرار دهد که دیگران هم از آن استفاده کنند زیرا که این گزینه های مطرح شده در اکثر پورتال ها لحاظ می شود
با تشکر...............

mahdi_negahi
جمعه 31 فروردین 1386, 14:24 عصر
وقتی فیلد username در دیتابیس کلید اصلی بشه اصلا username به یک شکل نمیشه

ealireza
جمعه 31 فروردین 1386, 15:33 عصر
سلام
1-چگونه می توان از loginکردن دو یا تعدادی کاربر با یک username جلوگیری کرد
2-اگر کاربری password خود را 3 بار اشتباه وارد کرد آن کاربر را به عنوان مثال برای 2 ساعت غیرفعال نمود البته ساعت و تعداد دفعات اشتباه وارد کردن رمز عبور به صورت قابل تعریف در سیستم پورتال باشد
اگر کسی در این زمینه کار کرده است لطفا سورس آن را در وب سایت قرار دهد که دیگران هم از آن استفاده کنند زیرا که این گزینه های مطرح شده در اکثر پورتال ها لحاظ می شود
با تشکر...............
خیلی سادس !

یک نکته هم باید بهت بگم برداشتت اشتباه بوده تو پرتالا بر اساس سشن کار میکنن تا فقط اون کاربر نتونه وصل بشده (شاید یک هکر بوده !!)
نه صاحب اصلی شناسه !!

در هر صورت راه حل رو برات مینویسم :

توی تیبل یوزر هات دو فیلد بساز یکی از جنس datetime قبل از هر بار چک کردن رمز اینو چک کن ببین ساعت و تاریخ مال کی بوده و بر اساس فیلد دومت که از جنس INT هست دفعات رو چک میکنی

یک شرط هم براز که اگر datetime بیشتر از now-3ساعت بود مقدار فیلد INT برابر با 0 شه


LastLogError datetime,
LoginCounter int
موفق باشید

ealireza
جمعه 31 فروردین 1386, 15:39 عصر
جواب سوال اولتم اینه که یک تیبل درست کن بنام Loged
توش یک فیلد USER بساز که Primery KEy باشه برات و از جنس nvarchar که طرف یوزر فارسی ساخته بود موردی نداشته باشه

موقع لاگ این این تیبل رو چک میکنی که آیا این یوزر هست یا نه
اگه نبود لاگ این میکنی و یک رکورد اضافه میکنی که شامل نام کاربری

اگر هم که بود کاربر پیغام خطا میگیره !

برای تنظیم زمان خروج کاربر در فایل
GLOBAL.ASAX
در ساب روتین Session_End میای شناسه کاربری یوزرتو از بانک اطلاعاتی حذف مینی
این کار رو برای قسمت LOG OUT هم انجام بده

موفق باشید

MehranZand
شنبه 01 اردیبهشت 1386, 01:39 صبح
سلام
1-چگونه می توان از loginکردن دو یا تعدادی کاربر با یک username جلوگیری کرد
2-اگر کاربری password خود را 3 بار اشتباه وارد کرد آن کاربر را به عنوان مثال برای 2 ساعت غیرفعال نمود البته ساعت و تعداد دفعات اشتباه وارد کردن رمز عبور به صورت قابل تعریف در سیستم پورتال باشد
اگر کسی در این زمینه کار کرده است لطفا سورس آن را در وب سایت قرار دهد که دیگران هم از آن استفاده کنند زیرا که این گزینه های مطرح شده در اکثر پورتال ها لحاظ می شود
با تشکر...............
اگر با role و membership خود asp.net2 کار میکنی بعد از ایجادجدول ها در دیتابیست یه نگاه
به فیلدهاش بکنی همه چی دستت میاد

صابر
شنبه 01 اردیبهشت 1386, 09:54 صبح
اگه usernameها رو توی session نگهداری میکنی:

if (Session["username"].ToString()!=username) //ok else //error

که username نام کاربر جدیدیست که میخواهد لوگین کند.

flashswf
شنبه 01 اردیبهشت 1386, 15:42 عصر
با سلام
برای اینکه چند نفر با یک یوزر و پس لاگین نشن باید هر کی لاگین شد یوزرش رو توی یک Application ذخیره کنی و بعد نفر بعد که خواست لاگین بشه چک کنی اگه توی Application بود اجازه ندی لاگین شه ولی یک مشکلی که وجود داره اینه که اگر کاربر بدون Logout از سایت خارج بشه تا Session باطل نشه نمی تونه دوباره لاگین بشه
از این روش برای سایت های عمومی استفاده نمی کنن مگر سایت های امنیتی حتی Google و yahoo .... دیگه هم این کارو نکردن و شما می تونید با یک یوزر از چند جا هم زمان لاگین شین
در مورد سوال دوم هم کافیه یک فیلد Datetime توی دیتا بیس ایجاد کنی و اگه کاربر مثلا 3 بار لاگین شد اونو با زمان فعلی پر کنی و چک کنی اگر مثلا 20 دقیقه نگذشته بود لاگین نشه

موفق باشید

ealireza
شنبه 01 اردیبهشت 1386, 20:46 عصر
با سلام
برای اینکه چند نفر با یک یوزر و پس لاگین نشن باید هر کی لاگین شد یوزرش رو توی یک Application ذخیره کنی و بعد نفر بعد که خواست لاگین بشه چک کنی اگه توی Application بود اجازه ندی لاگین شه ولی یک مشکلی که وجود داره اینه که اگر کاربر بدون Logout از سایت خارج بشه تا Session باطل نشه نمی تونه دوباره لاگین بشه
از این روش برای سایت های عمومی استفاده نمی کنن مگر سایت های امنیتی حتی Google و yahoo .... دیگه هم این کارو نکردن و شما می تونید با یک یوزر از چند جا هم زمان لاگین شین
در مورد سوال دوم هم کافیه یک فیلد Datetime توی دیتا بیس ایجاد کنی و اگه کاربر مثلا 3 بار لاگین شد اونو با زمان فعلی پر کنی و چک کنی اگر مثلا 20 دقیقه نگذشته بود لاگین نشه

موفق باشید
Application منطقی نیست !! و اشتباهه !!!!!!
موفق باشید!