PDA

View Full Version : لاک کردن کاربران



darkwish
دوشنبه 29 آبان 1391, 23:18 عصر
سلام
من برای لاگین سایتم از تیبل های خود asp مثل membership و ... استفاده نکردم.
حالا می خوام کاربر اگر پسورد را 5 با اشتباه وارد کرد لاک بشه و بعد از یک زمان معین دوباره خودش فعال بشه.
دقیقا مثل اتفاقی که هنگام لاکین توی برنامه نویس می افته. نمی دونم باید چیکار کنم و از کجا شروع کنم. داخل دیتا بیسم ستون ها لازم رو گذاشتم ولی زمان رو باید چطوری بهش بدم که بعد از مثلا 20 دقیقه دوباره خودش فعال بشه.
و سوال آخر هم اینکه اگر از ممبر شیپ استفاده کنم روال کار به چه صورت است. البته این فقط جهت اطلاع خودمه و الا از این روش نمی خوام استفاده کنم و همون روش قبلی مد نظر است.
ممنون می شم اگه کمکم کنید.

crazy_1892
دوشنبه 29 آبان 1391, 23:24 عصر
یک جدول طراحی کن که نام user ویک زمان را ذخیره کن موقع login یوزر را با اون جدول مقایسه کن
برای شمارشم مینونی یک فیلد دیگه در نظر بگیر

darkwish
دوشنبه 29 آبان 1391, 23:33 عصر
یک جدول طراحی کن که نام user ویک زمان را ذخیره کن موقع login یوزر را با اون جدول مقایسه کن
برای شمارشم مینونی یک فیلد دیگه در نظر بگیر
دوست عزی زجدول ها رو دارو فیلد هاشم ساختم ولی مشکل اینجاست که از کجا باید سیستم بدونه که از زمان لاک شدن کاربر 20 دقدقه گذشته و خودش فیلد لاک رو برای اون کاربر 0 کنه. در واقعه نمی دونم چکار کنم که داینامیک و بدون دخالت من این عمل اجرا بشه
. و آیا این رش منطقی هست یا نه و روش استانداردش بدون استفاده از جدول ممبرشیپ خود asp چیه.
در ضمن از لاگین asp هم استفاده نمی کنم و همه چیز رو خودم ساختم واسه اینه که موندم چیکار کنم. ممنون اگه کمک کنید.

darkwish
دوشنبه 29 آبان 1391, 23:54 عصر
کسی جواب این سوال رو نمی دونه! بعید می دونم این یه کار متداوله که اکثر سایت ها انجام می دن ولی ما تازه کاریم!!

fakhravari
سه شنبه 30 آبان 1391, 00:36 صبح
چرا استفاده نکردید؟؟
این کار شما مثل دورخودت چرخیدن.
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ConnectionString1" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true"
maxInvalidPasswordAttempts="10" minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/"/>
</providers>
</membership>
دقیقا یادم نیست اما فکر کنم passwordAttemptWindow یا maxInvalidPasswordAttempts باشه.

برای باز کردنشم که جدول aspnet_Membership برسی کنید
با استفاده از زمان بندی میتونید یه تابع بنویسید که کاربر ازاد کنه.

raziee
سه شنبه 30 آبان 1391, 00:44 صبح
با درود

زمانی که کاربری رمز عبورش رو اشتباه وارد میکنه باید بررسی بشه که آیا قبلا (در بازه زمانی مشخص) رمز عبورش رو اشتباه وارد کرده یا خیر.
این بررسی توسط دو مقدار صورت میگیره.
مقدار اول زمان آخرین تلاش بوده و مقدار دوم تعداد دفعات اشتباه وارد کردن.

هر بار که کاربر رمز عبورش رو اشتباه وارد میکنه باید مقدار آخرین تلاش ناموفق بروز بشه و همچنین تعداد تلاش ها.

اگه تعداد تلاش ها بیشتر از حد مجاز بود دسترسی کاربر مسدود خواهد شد.