PDA

View Full Version : مبتدی: اگر کاربر 3 بار رمز را اشتباه وارد کرد برنامه قفل شود



Collector
یک شنبه 19 شهریور 1391, 16:31 عصر
سلام

من میخوام که اگر کاربر 3 بار رمز را اشتباه وارد کرد فقط همان کاربر 15 دقیقه قفل شود لطفا راهنمایی فرمایید.

abcd_a
یک شنبه 19 شهریور 1391, 17:16 عصر
می تونی یه متغیر سراسری تعریف کنی هر بار که کاربر رمز را اشتباه کرد یکی به اون اضافه بشه

بعد اگه مقدار متغییر بیشبر از 3 بود مثلا فرم غیره فعال شود و یه thread اجرا بشه به میزان زمانی که می خوای و در انتها مقدار متغیر را صفر شود و فرم فعال شود برای ورود مجدد

quantomquery
یک شنبه 19 شهریور 1391, 17:24 عصر
2 تا فیلد تو دیتابیس بذار
یکی تاریخ و دیگری یه عدد بگیره

هربار که کاربر خواست وارد بشه تاریخ رو به اون لحظه ست کن
اگه پس رو اشتپاه زد یکی به عدد اون فیلد عددی اظافه کن و اگه اون فیلد 3 بود پیام بده تا 15 دقیقه قفله
اگه درست زد اون فیلد عددی 0 بشه
حالا اون خط قرمز و اینطوری تصحیح میکنم که درکش بهتر باشه :
هر بار که کاربر خواست وارد بشه اول تاریخ رو ببینه و اگه 15 دقیقه با تاریخ فعلی فاصله داشت :
1- فیلد عددی صفر بشه(برای اینه که اگه کسی 2 بار پس اشتباه داد و 2 روز دیگه اومد و یه بار اشتباه کرد سیستم 15 دقیقه قفل نکنه)
2-تاریخ جدید ست بشه
حالا اگه پس اشتباه بود یکی به اون فیلد عددی اظافه بشه و اگه پس درست بود که هیچ

kkkaka
یک شنبه 19 شهریور 1391, 17:27 عصر
بله بهترین کار همینه البته دقت داشته باشید که اگر کاربر برنامه رو باز و بسته کنه شرط زمان انتظار از بین میره!
بهتره شما بعد از این که متغییرت برابر 3 شد زمان حال سیستم رو بگیری و یک ربع بعد رو محاسبه کنی و بدی به بانک و موقع باز شدن چک کنی که شرط زمان هنوز بر قراره یا نه اگر نبود از بانک پاکش کن و به کاربر اجازه بده دوباره سعی کنه.
البته فکر میکنم یک راه هم وجود داره که نیازی به بانک نباشه که دقیق نمیدونم چجوریه از متغییرهای قابل تعریف در Setting پروژه استفاده میکنه.

abcd_a
یک شنبه 19 شهریور 1391, 17:53 عصر
حق با دوستانه من بستن برنامه را در نظر نگرفته بودم
از setting هم استفاده کنی باید هم باید تاریخ در متغییر ذخیره کنی

Collector
یک شنبه 19 شهریور 1391, 18:25 عصر
مشکل اساسی اینجاست که
اگر کاربر تاریخ سیستم رو تغییر بده همه چیز بهم میریزه و کاربر میتونه دوباره رمز عبور وارد کنه!
به نظرم میشه ساعت را از اینترنت گرفت ولی اگر آنلاین نبود چی؟
این برنامه هایی تریال که فقط 30 روز کار میکنن چطوره کار میکنن؟ میشه از روش اونا این کار را انجام داد؟

Mahmoud Zaad
یک شنبه 19 شهریور 1391, 19:38 عصر
سلام
وقتی شما نگران تعویض تاریخ هستید، نیازی به ذخیره تاریخ نیست! شما یه تایمر دارید که از 15 دقیقه شروع میشه تا صفر، خب در صورتیکه کاربر فرم رو بست توی رویداد FormClosing یا FormClosed، مقدار تایمر رو هم می گیرید و ذخیره می کنید حالا وقتی که دوباره برنامه باز شد چک می کنید ببینید مقدار فیلد تایمر توی دیتابیس صفر هست یا نه. اگر صفر بود که هیچ اگر صفر نبود تایمر ادامه کار می ده. یعنی مقدار شروع به کار تایمر رو از دیتابیس می خونید.
اینجا (http://barnamenevis.org/showthread.php?359991-کمک-برای-کار-با-تایمر/page2)هم با یه کم تفاوت این بحث انجام شده.

kkkaka
یک شنبه 19 شهریور 1391, 22:59 عصر
Collector (http://barnamenevis.org/member.php?165386-Collector) جان
اون برنامه ها با رجیستری کار میکنن به این صورت که هنگام نصب یک کلید در ریجستری ایجاد میکنن و تاریخ حال حاظر سیستم رو بهش میدن و موقع شروع چک میکنن که چند روز از تاریخ گذشته وقتی به 30 روز میرسه دیگه اجازه کار به کاربر نمیده و در ضمن یه کلید دیگه ایجاد میکنن که شما حتی اگر نرم افزار رو Uninstall بکی و دوباره نصبش کنی باز هم نتونی ازش استفاده کنی البته بعضی از نرم افزار های Optimizer میتونن این کلید هارو از رجیستری پاک کنند ولی خیلی هاشم نمیتونن!!

AmirGhasemi
دوشنبه 20 شهریور 1391, 00:49 صبح
سلام
در مورد برنامه هاي ترايال، بايد بگم كه روش هاي رجيستري خيلي خيلي قديمي شده! الان شما يه سرچ بزني توي اينترنت، هزار تا راه بهت مي گه كه اگه ترايال روي رجيستري كار مي كنه چه جوري رجيستري را پاك كني كه ترايال از كار بيفته!!
بهترين كار واسه ساختن ترايال،‌استفاده از فايل setting است!! نسبت به عوض كردن ساعت كامپيوتر هم حساسه!! شما مي توني هر بار ورويد به نرم افزارت را ساعت و تاريخ ورود را در فايل setting ذخيره كني و دفعه بعدي براي وارد شدن بايد ساعت كاپمويتر طرف از آخرين ركورد setting بيشتر باشه و اينجروي نمي تونه دستكاري كنه!!!
در مورد 3 بار وارد شدن هم بنده حقير با نظر دوستان كاملا موافقم!!!!!!!!!! احسنت!
اما در مورد عقب جلو كردن ساعت كامپيوتر طرف كاربر، اگه نرم افزارت تحت شبكه است كه خب مي توني ساعت سرور محلي ات را ملاك قرار دهي! اگر تحته وبه كه باز ساعت سرور روي اينترنت را!‌ اما اگه تك سيستم كلاينت كار مي كنه كه زياد مته به خشخاش نزن! ديگه ته تهش همين ذخيره ساعت توي دييتابيسه!!!