PDA

View Full Version : سوال: برنامه یوزر - پسورد



aminvb
پنج شنبه 11 شهریور 1389, 00:55 صبح
سلام

هدف برنامه : نمایش فرم 2

درباره عملکرد : ما توو فرم 1 یوزر پسورد میخوایم در صورت درست بودن فرم 2 نمایش داده میشه

داخله فرم1 برای تغییر رمز عبور یک فرم دیگر با نامه ادیت داریم که میشه نام کابری پسورد را چینج کرد

لازم به ذکر است برنامه برای بار اول یوزر و پسوردی نداره و کاربر با زدن دگمه لوگین بدونه وارد کردنه یوزر و پسورد باید فرم2 رو بتونه ببینه

اما هنگامی که رفت برای تغییر کاربری و پسورد و برای بار اول ثبت کرد کاربری و پسورد رو
توو فرم 1 کاربری و پسوردی رو که ثبت کرده رو زد فرم 2 باز بشه

من مشکلم اینجاست وقتی میام یوزر و پسورد ثبت میکنم دیگه نمیتونم لاگین بشم و فرم 2 رو ببینم

دوستان میشه سورسو نگا کنن و تغییرات لازم رو انجام بدن تا منم بتونم فردا برناممو تحویل بدم
ممنونم

aminvb
پنج شنبه 11 شهریور 1389, 02:35 صبح
آقا خیلی فوریه

گیر کردم لطفا دست ما رو بگیرین:ناراحت:

modirmasool
پنج شنبه 11 شهریور 1389, 10:33 صبح
برنامه تون چرا به محض زدن لاگین هنگ می کنه؟ مشکلتون با همینه یا نه؟

Saman_12
پنج شنبه 11 شهریور 1389, 10:37 صبح
برنامه تون چرا به محض زدن لاگین هنگ می کنه؟ مشکلتون با همینه یا نه؟

مدیر جون این برنامه به یک دیتا بیس وصل هست و برای اتصال به دیتا بیس 30 ثانیه فرصت می خواد به مین دلیل هم هنگ می کنه.(من اطلاعاتی در مورد دیتا بیس ندارم و اگر نه حتما کمک می کردم.):خجالت:

aminvb
پنج شنبه 11 شهریور 1389, 12:42 عصر
سلام

چند تا سوال در مورد گذاشتن User name parword برای برنامم داشتم

اول اینکه من فکر میکردم میشه کاربر بیاد یوزر و پسورود رو داخله دیتا بیس ذخیره کنه و بتونه اونو چینج کنه

اما به این فکر نکردم اگه طرف برنامه رو پاک کرد و دوباره نصب کنه خوب باید بره دیتا بیسشو ری استور کنه بعد یوزر و پسوردش فعال میشه

چون رمز و نام کاربری اول برنامه که بازه چون چیزی نداده بهش

راهی نیست که اگه برنامشو پاک کرد دوباره نصب کرد صفحه یوزر و پسورد اومد

همون یوزر و پسوردی که بهش دادیمو بخواد ازش

Saman_12
پنج شنبه 11 شهریور 1389, 12:49 عصر
خوب توی ریجستری ذخیره کن بعد هم بخون.

aminvb
پنج شنبه 11 شهریور 1389, 12:50 عصر
اگه ویندوز عوض کرد چی ؟

من بلد نیستم توو رجیستری ذخیره کنم میشه توضیح بدی ؟

nasim bahari
پنج شنبه 11 شهریور 1389, 12:55 عصر
سلام

چند تا سوال در مورد گذاشتن User name parword برای برنامم داشتم

اول اینکه من فکر میکردم میشه کاربر بیاد یوزر و پسورود رو داخله دیتا بیس ذخیره کنه و بتونه اونو چینج کنه

اما به این فکر نکردم اگه طرف برنامه رو پاک کرد و دوباره نصب کنه خوب باید بره دیتا بیسشو ری استور کنه بعد یوزر و پسوردش فعال میشه

چون رمز و نام کاربری اول برنامه که بازه چون چیزی نداده بهش

راهی نیست که اگه برنامشو پاک کرد دوباره نصب کرد صفحه یوزر و پسورد اومد

همون یوزر و پسوردی که بهش دادیمو بخواد ازش

سلام دوست عزیز......

البته اینکه شما رمز عبور رو در پایگاه داده بزارین....خیلی راحت میشه اون رو شناسایی کرد....پس بهترین حالت اینه که شما طبق فرمولی رمز عبور رو تغییر بدین و بعد در پایگاه داده بنویسین....البته باز هم میشه توسط برنامه های از فایل اجرایی برنامه به سورس برنامه دست یافت ولی بهتر از حالت اول است......

اما در مورد سوال شما......وقتی که برنامه حذف میشه....دیگه طرف نباید انتظار همون رمز عبور رو داشته باشه.....مگر اینکه شما بانک رو ریستور کنین.....اما من فکر می کنم شما باید در برنام تون ی رمز عبور ساده که دارای کمترین دسترسی هستش برای شروع اولیه برنامه و برای یه سری تنظیمات خاص درون بانک قرار بدین و کاربر رو از اون مطلع کنین....در واقع حالت پیش فرض باشه....

موفق باشین

Saman_12
پنج شنبه 11 شهریور 1389, 12:57 عصر
اگه ویندوز عوض کنه که برنامه شما (به شرطی که توی پروگرم فایل باشه) پاک میشه.
ما دو حالت برای ذخیره توی ریجستری داریم حالات اول که توی اون یک کلید اشتراکی خود وبی برات مینویسه که برنامه های دیگه البته بعضی از اون ها توی این کلید اطلاعات ذخیره می کنن دو ذخیره اطلاعات توی هر کلید هر جا که دوست داشتی!
برای امنیت بیشتر هم باید کد هار به صورت رمز در بیاری که هرکی سرک کشید نفهمه چیه!
با تابع SaveSetting و GetSetting به روش اول می خونن و می نویسن با تعریف یه ریجستری کی هم به روش دوم حالا کدوم رو می خوا برات توضیح بدم.

aminvb
پنج شنبه 11 شهریور 1389, 12:59 عصر
یعنی پیش فرض باشه نه قابلیت تغییر داشته باشه نه هیچی؟

این حرفو قبول دارم که اگه برنامه پاک شد نباید توقع رمز عبور رو داشته باشه

اما خیلی ضایع میشهکه چینج نشه

میشه طریقه ذخیره توو رجیستری رو توضیح بدین؟

اگه توو رجیستری ذخیره بشه برنامه پاک شه دوباره نصب شه آیا همون رمزی که داده هست سر جاش؟
--------------------

اگه ویندوز عوض کنه که برنامه شما (به شرطی که توی پروگرم فایل باشه) پاک میشه.
ما دو حالت برای ذخیره توی ریجستری داریم حالات اول که توی اون یک کلید اشتراکی خود وبی برات مینویسه که برنامه های دیگه البته بعضی از اون ها توی این کلید اطلاعات ذخیره می کنن دو ذخیره اطلاعات توی هر کلید هر جا که دوست داشتی!
برای امنیت بیشتر هم باید کد هار به صورت رمز در بیاری که هرکی سرک کشید نفهمه چیه!
با تابع SaveSetting و GetSetting به روش اول می خونن و می نویسن با تعریف یه ریجستری کی هم به روش دوم حالا کدوم رو می خوا برات توضیح بدم.

دوسته من میشه یک برنامه یوزر و پسورد ساده بنویسی که اولش رمزی نخواد و بشه رمز و یوزر جدید رو وارد کرد با قابلیت چینج

و اگه طرف نرم افرارو پاک کرد دوباره نصب کرد بتونه از رمزی که قبلا داده استفاده کنه

حالا نمی دونم کجا ذخیره میکنی رجیستری یا....

منمنونم

nasim bahari
پنج شنبه 11 شهریور 1389, 13:11 عصر
یعنی پیش فرض باشه نه قابلیت تغییر داشته باشه نه هیچی؟

این حرفو قبول دارم که اگه برنامه پاک شد نباید توقع رمز عبور رو داشته باشه

اما خیلی ضایع میشهکه چینج نشه

میشه طریقه ذخیره توو رجیستری رو توضیح بدین؟

اگه توو رجیستری ذخیره بشه برنامه پاک شه دوباره نصب شه آیا همون رمزی که داده هست سر جاش؟
--------------------


دوسته من میشه یک برنامه یوزر و پسورد ساده بنویسی که اولش رمزی نخواد و بشه رمز و یوزر جدید رو وارد کرد با قابلیت چینج

و اگه طرف نرم افرارو پاک کرد دوباره نصب کرد بتونه از رمزی که قبلا داده استفاده کنه

حالا نمی دونم کجا ذخیره میکنی رجیستری یا....

منمنونم

بله اگه توی ریجستری ذخیره کنید فقط در صورتی اطلاعات شما از بین میره که ویندوز عوض بشه...البته طریقه ذخیره در ریجستری و دوست خوبم سامان حتماً توضیح میدن ... البته اون حالت رو که گفتم با تعویض ویندوز اطلاعات ریجستری رو هم از دست میدین یه مسئله دیگه هستش......که من فکر می کنم شما باید از یه فایل استفاده کنین که در کنار فایل اجرایی برنامه تون باشه یعنی در Application Directory که اطلاعات رو به صورت رمز شده در اون قرار بدین که همیشه در اختیار شما باشد.....البته یه تمهیداتی رو هم برای اون باید در نظر بگیرین که حذف و ادیت نشه و همچنین دارای یه تکنیک رمزگذاری قوی باشه موفق باشین

Saman_12
پنج شنبه 11 شهریور 1389, 13:11 عصر
بله سر جاشه مگه که پاکش کنی یا پاکش کنن.(من کمتر کار بری رو دیدم که توی ریجستریش دست ببره چون اگه اشتباه کنه ویندوز فرت.)

من روش دوم رو توضیح میدم که از لحاظ امنیت هم راحت تره :
اول باید بیایی و یه کلید تعریف کنی که من خودم یک کلید پیشنهاد می دم که کاربر جرئت دست کاری نداشته باشه :

Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer \RecentDocs", True)
خوب این از Key حالا شما اطلاعات رو این جوری سیو کن :


key.SetValue("Name", "Value", Microsoft.Win32.RegistryValueKind.DWord)

خوب توی کد بالا Name اسم داده هست که برای خوندن نیازش داری و Value هم اون چیزی که ذخیره میشه.
برای خوندن اون مقدار ذخیره شده هم ای نجوری عمل کن :


Dim Value As String
Value = key.GetValue("Name", 0)

این کد مقدار قبل ی که ذخیره کردی همون Value رو می خونه برات و اگه وجود نداشت 0 رو بر می گردون .
برای کد کردن هم میتونی به Xor متوصل شی.

aminvb
پنج شنبه 11 شهریور 1389, 13:19 عصر
بله سر جاشه مگه که پاکش کنی یا پاکش کنن.(من کمتر کار بری رو دیدم که توی ریجستریش دست ببره چون اگه اشتباه کنه ویندوز فرت.)

من روش دوم رو توضیح میدم که از لحاظ امنیت هم راحت تره :
اول باید بیایی و یه کلید تعریف کنی که من خودم یک کلید پیشنهاد می دم که کاربر جرئت دست کاری نداشته باشه :

Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer \RecentDocs", True)خوب این از Key حالا شما اطلاعات رو این جوری سیو کن :


key.SetValue("Name", "Value", Microsoft.Win32.RegistryValueKind.DWord)
خوب توی کد بالا Name اسم داده هست که برای خوندن نیازش داری و Value هم اون چیزی که ذخیره میشه.
برای خوندن اون مقدار ذخیره شده هم ای نجوری عمل کن :


Dim Value As String
Value = key.GetValue("Name", 0)
این کد مقدار قبل ی که ذخیره کردی همون Value رو می خونه برات و اگه وجود نداشت 0 رو بر می گردون .
برای کد کردن هم میتونی به Xor متوصل شی.

از توجه همه دوستان ممنونم

سامان جان میشه اینو تکمیل کنی:خجالت::خجالت:

میخوام در صورت درست اولشم پسردو خودمون بدیم چینج هم داشته باشه بودن فرم2 نمایش داده بشه

Saman_12
پنج شنبه 11 شهریور 1389, 13:21 عصر
بله اگه توی ریجستری ذخیره کنید فقط در صورتی اطلاعات شما از بین میره که ویندوز عوض بشه...البته طریقه ذخیره در ریجستری و دوست خوبم سامان حتماً توضیح میدن ... البته اون حالت رو که گفتم با تعویض ویندوز اطلاعات ریجستری رو هم از دست میدین یه مسئله دیگه هستش......که من فکر می کنم شما باید از یه فایل استفاده کنین که در کنار فایل اجرایی برنامه تون باشه یعنی در Application Directory که اطلاعات رو به صورت رمز شده در اون قرار بدین که همیشه در اختیار شما باشد.....البته یه تمهیداتی رو هم برای اون باید در نظر بگیرین که حذف و ادیت نشه و همچنین دارای یه تکنیک رمزگذاری قوی باشه موفق باشین

برای اینکه هیچ برنامه ای در هیچ حالتی نتونه اونو بخونه پاک کنه یا اینکه بنویسه (بهتره شما این فایل رو وی پوشه Temp ذخیره کنید که اگه کاربر خواست برنامه رو آنیستال کنه بتونه.) از این کد استفاده کن :


Dim fld As New System.IO.FileInfo("Your File path")
Dim sec As System.Security.AccessControl.FileSecurity

sec = fld.GetAccessControl()
For Each rul As System.Security.AccessControl.FileSystemAccessRule In sec.GetAccessRules(True, True, GetType(System.Security.Principal.NTAccount))
sec.RemoveAccessRuleAll(rul)
Next
sec.SetAccessRuleProtection(True, False)
fld.SetAccessControl(sec)

sec.AddAccessRule(New Security.AccessControl.FileSystemAccessRule("CREATOR OWNER", Security.AccessControl.FileSystemRights.FullContro l, Security.AccessControl.AccessControlType.Deny))
fld.SetAccessControl(sec)

Saman_12
پنج شنبه 11 شهریور 1389, 14:54 عصر
اون برنامه رو براتون ویرایش کردم البته هر کجاش رو نفهمیدی بگو تا توضیح بدم .(درضمن بهتره خودتون هم تلاش کنید تا یاد بگیرید.به این نکته هم توجه داشته باشین که درخواست پروژه ممنوعه و چون این تکه ای از یک پرو ژه بود براتون نوشتم.):

aminvb
پنج شنبه 11 شهریور 1389, 20:51 عصر
سامان جان دستت درد نکنه

برنامه اول که اجرا میکنی درسته پسورد میدی چینج میکنی اما بعد که می بندی دوباره باز میکنی این ارور رو میده Conversion from string "a" to type 'Double' is not valid.

من گیرم سره این بود که این فقط عدد قبول میکرد ارور می داد ورشته نمی گرفت

میشه در باره این UCase$ بیشتر توضیح بدی کارش چیه؟


از این که وقت میزاری ممنون تا الان خیلی چیزا یاد گرفتم:بوس:

aminvb
پنج شنبه 11 شهریور 1389, 23:39 عصر
مشکلم حل شد یک دنیا تشکر:لبخندساده::لبخندساده:: بخندساده::لبخندساده:

Saman_12
جمعه 12 شهریور 1389, 00:54 صبح
سامان جان دستت درد نکنه

میشه در باره این UCase$ بیشتر توضیح بدی کارش چیه؟


از این که وقت میزاری ممنون تا الان خیلی چیزا یاد گرفتم:بوس:
این تابع هرچی حروف کوچیک توی رشته هست رو به بزرگ تبدیل می کنه تا بین حروف بزرگ و کوچیک تفاوت قائل نشه.