با سلام و خسته نباشید.من میخوام اگه کاربر چند بار رمزشو اشتباه وارد کرد نام کاربریش مثلا به مدت 15 دقیقه غیر فعال بشه و بعد مجدد رمز رو وارد کنه.ممنون میشم راهنمایی کنید.
با سلام و خسته نباشید.من میخوام اگه کاربر چند بار رمزشو اشتباه وارد کرد نام کاربریش مثلا به مدت 15 دقیقه غیر فعال بشه و بعد مجدد رمز رو وارد کنه.ممنون میشم راهنمایی کنید.
سلام
یه counter بذار وقتی که 3 بار اشتباه زد . تاریخ رو ذخیره کن .
توی Pageload چک کن که این کاربر مجوز لاگین زدن داره یا نه ( تاریخ فعلی رو منهای تاریخ ذخیره شده کن )
اصلا صحبت تاریخ نیست بلکه صحبت 15 دقیقه هست( تاریخ فعلی رو منهای تاریخ ذخیره شده کن )
باید بعد از سه بار اشتباه یک کوکی با عمر 15 دقیقه رو سیستم کاربر ایجاد بشه و درPageload چک کنه که تا زمانی که کوکی هست log in انجام نشه
اینطوری که کاربر میره کوکی ها رو حذف میکنه ... دوباره لاگین میزنه !
همه چیز رو نمیشه به کوکی سپرد مخصوصا زمانی که بحث امنیتی میشه .
بله اگه خیلی امنیتی باشه حرف شما درسته ولی اگه انقدر امنیتی بود که نمی گفت 15 دقیقه دیگه دوباره تلاش بکنه
اگر از membership خود asp.net استفاده میکنی باید این دوتا property رو توی وب کانفیگ تنظیم کنی :
1- maxInvalidPasswordAttempts تعداد دفعات تلاش برای ورود
2- passwordAttemptWindow مدت قفل شدن
سه تا فیلد قرار بده تو دیتا بیس یکی برای شمردن تعداد اشتباه وارد کردن رمز عبور، دیگری یه زمان انقضا و فیلد سوم هم برای وضعیت قفل شدن کاربر و وقتی مثلا کاربر 3 بار رمز رو اشتباه زد کاربر رو قفل کن، شمارنده رو صفر کن و تاریخ انقضای قفل بودن رو به هر مدت زمانی که میخواهی تنظیم کن.
شما در زمان لاگین همیشه باید وضعیت قفل بودن کاربر و اگر قفل باشه تاریخ انقضای این قفل رو بررسی کنی
اینجوری میتونی این امکان رو به مدیر بدی که کاربر رو از لاک بتونه در بیاره