PDA

View Full Version : آموزش: آموش ساخت فرم لاگین در سی شارپ (بدون نیاز به بانک اطلاعاتی)



golestan1
دوشنبه 26 خرداد 1393, 03:52 صبح
در این تاپیک می خوام ساخت فرم لاگین رو اموش بدم شاید به درد افراد مبتدی مثل خودم بخوره روش های زیادی برای ذخیره مقادیر یوزر وپسورد هست 1- می توانید در داخل خود برنامه مقادیر رو ذخیره کنید اما مقادیر بعدا قابل تغییر نمی باشد همیشگی خواهد بود 2- می توانید در بانک اطلاعاتی ذخیره کنید مقادیر قابل تغییر می باشد ولی اگر در برنامه از بانک اطلاعاتی استفاده نمی کنید خوب نیست که فقط به خاطر امنیت و گرفتن مقادیر ورود بیاید بانک به پروژه اد کنید و حجم برنامه رو چندین برابر کنید و کلی کد نویسی و ... 3 - می توانید مقادیر رو در یک فایل تکست قرار دهید تا مقادیر ورود از همان فایل خوانده شود و هر موقع که خواستید می توانید یوزر و پسورد رو تغییر دهید که در اینجا ما از همان روش سوم استفاده می کنیم نحوه کار به این صورت که ابتدا یک فایل با نام و پسوند pas.txtدر کنار فایل اجرایی یعنی درون پوشه دیباگ بسازید بعد یوزر و پسورد درون ان ذخیره کنید البته یوزر را در سطر اول و پسورد را در سطر دوم درست به این شکل yeganeh 12345 وارد و ذخیره کنید بعد یک پروژه جدید باز کنید از منوی بالا Project روی Ad New Item کلیک و یک فرم با نام پیش فرض اد کنید در رویداد FormClosing فرم یک کد زیر را وارد کنید Application.Exit(); در قسمت solution Explorer روی Program.cs کلیک کرده و در قسمت اپلیکیشن ران را به فرم دوم تغییر دهید Application.Run(new Form2()); تا ابتدا فرم دوم اجرا شود(فرم لاگین برنامه) فرض کنید Form1 فرم اصلی برنامه است و بعد از وارد کردن مقادیر در فرم لاگین این فرم به نمایش در میاید حالا در فرم 2 ابتدا یوزینگ اد کنید using System.IO; و بعد دو تکست باکس ویک دکمه قرار دهید (در فرم 2) و روی دکمه کلیک کنید و کد زیر را وارد کنید اگر کپی کنید و ارور داد دستی تایپ کنید string user; string pas; if (File.Exists(Application.StartupPath + "\\pas.txt")) { using (StreamReader sr1 = File.OpenText(Application.StartupPath + "\\pas.txt")) { user = sr1.ReadLine(); pas = sr1.ReadLine(); if (user == textBox1.Text & textBox2.Text == pas) { Form1 f1 = new Form1(); f1.Show(); this.Hide(); this.ShowInTaskbar = false; } else { MessageBox.Show("نام کاربری و یا پسورد اشتباه است"); } پروژه رو ذخیره و اجرا کنید کافیست در تکست باکس یک یوزر نیم و در تکست باکس دومی پسوردی رو که در فایل تکست است وارد کنید اگر می خواهید پسورد به صورت ستاره (*)نمایش داده شود در پروپرتیز تکست باکس دومی در قسمت Password Char کافیست یک ستاره (*)وارد کنید همان طور که مشخصه برنامه مشخصات داده شده رو با محتویات فایل pas.txt مطابقت میکنه و اگه درست بود فرم دوم رو نمایش میده یعنی هر وقت که خواستید یوزر و پسورد رو تغییر دهید کافیست محتویات داخل فایل pas.txt را تغییر و ذخیره نمایید فایل ضمیمه با vs2010

farhad.k.t
یک شنبه 23 شهریور 1393, 00:34 صبح
در این تاپیک می خوام ساخت فرم لاگین رو اموش بدم شاید به درد افراد مبتدی مثل خودم بخوره
روش های زیادی برای ذخیره مقادیر یوزر وپسورد هست
1- می توانید در داخل خود برنامه مقادیر رو ذخیره کنید اما مقادیر بعدا قابل تغییر نمی باشد همیشگی خواهد بود
2- می توانید در بانک اطلاعاتی ذخیره کنید مقادیر قابل تغییر می باشد ولی اگر در برنامه از بانک اطلاعاتی استفاده نمی کنید خوب نیست که فقط به خاطر امنیت و گرفتن مقادیر ورود بیاید بانک به پروژه اد کنید و حجم برنامه رو چندین برابر کنید و کلی کد نویسی و ...
3 - می توانید مقادیر رو در یک فایل تکست قرار دهید تا مقادیر ورود از همان فایل خوانده شود و هر موقع که خواستید می توانید یوزر و پسورد رو تغییر دهید که در اینجا ما از همان روش سوم استفاده می کنیم
نحوه کار به این صورت که ابتدا یک فایل با نام و پسوند pas.txtدر کنار فایل اجرایی یعنی درون پوشه دیباگ بسازید
بعد یوزر و پسورد درون ان ذخیره کنید البته یوزر را در سطر اول و پسورد را در سطر دوم درست به این شکل
yeganeh
12345
وارد و ذخیره کنید
بعد یک پروژه جدید باز کنید

در رویداد FormClosing فرم یک کد زیر را وارد کنید
Application.Exit();

در قسمت solution Explorer روی Program.cs کلیک کرده و در قسمت اپلیکیشن ران را به فرم دوم تغییر دهید
Application.Run(new Form2());
تا ابتدا فرم دوم اجرا شود(فرم لاگین برنامه)
از منوی بالا Project روی Ad New Item کلیک و یک فرم با نام پیش فرض اد کنید
فرض کنید Form1 فرم اصلی برنامه است و بعد از وارد کردن مقادیر در فرم لاگین این فرم به نمایش در میاید
حالا در فرم 2 ابتدا یوزینگ اد کنید
using System.IO;

و بعد دو تکست باکس ویک دکمه قرار دهید (در فرم 2)
و روی دکمه کلیک کنید و کد زیر را وارد کنید
اگر کپی کنید و ارور داد دستی تایپ کنید

string user;
string pas;
if (File.Exists(Application.StartupPath + "\\pas.txt"))
{
using (StreamReader sr1 = File.OpenText(Application.StartupPath + "\\pas.txt"))
{
user = sr1.ReadLine();
pas = sr1.ReadLine();

if (user == textBox1.Text & textBox2.Text == pas)
{
Form1 f1 = new Form1(); f1.Show();
this.Hide();
this.ShowInTaskbar = false;
}
else
{
MessageBox.Show("نام کاربری و یا پسورد اشتباه است");

}

پروژه رو ذخیره و اجرا کنید
کافیست در تکست باکس یک یوزر نیم
و در تکست باکس دومی پسوردی رو که در فایل تکست است وارد کنید
اگر می خواهید پسورد به صورت ستاره (*)نمایش داده شود در پروپرتیز تکست باکس دومی در قسمت Password Char کافیست یک ستاره (*)وارد کنید
همان طور که مشخصه برنامه مشخصات داده شده رو با محتویات فایل pas.txt مطابقت میکنه و اگه درست بود فرم دوم رو نمایش میده
یعنی هر وقت که خواستید یوزر و پسورد رو تغییر دهید کافیست محتویات داخل فایل pas.txt را تغییر و ذخیره نمایید

فایل ضمیمه با vs2010


دوست عزیز لطفا قبل از ایجاد تاپیک در انجمن بیشتر جستجو کنید...
این روش شما از هر لحاظ مشکل دارد و در پایین ترین سطح امنیتی قرار دارد زیرا حتی کاربر معمولی به آن دسترسی دارد و از فایل txt حداقل امکان در صورتی که امنیت اصلا برایتان مطرح نیست استفاده کنید(باز هم اصلا توصیه نمی کنم چون کاربر مستقیما به منبع داده دسترسی داشته و می تواند در برنامه مشکل ایجاد کند)

برای امنیت بیشتر می توانید درباره ی الگوریتم های Encrypting و Decrypting جستجو نمایید و همچنین به جای استفاده از فایلtxt می توانید از xml هم در مواقعی که امنیت برایتان زیاد مطرح نیست استفاده کنید ولی بهترین شیوه استفاده از database است...

موفق باشید

golestan1
یک شنبه 23 شهریور 1393, 06:00 صبح
بله قبول دارم امنیتش بالا نیست اما بعضی مواقع در برنامه های کوچک که دیتابیس ندارد مناسب است

CsharpNevisi
یک شنبه 23 شهریور 1393, 11:09 صبح
یه نظر شخصی دارم .. !!
اینجور تیکه برنامه هارو همه بلدن ... شما که رحمت کشیدین بهتر نیست از الگوریتم های رمز گذاری استفاده کنین که هم تایپیکتون کیفیتش بره بالا هم یه چیز جدید داشته باشه
البته این یه نظر شخصیه

farhad.k.t
سه شنبه 25 شهریور 1393, 15:28 عصر
ببینید دوست عزیز اول باید هدف خود را از ایجاد رمزعبور برای ورود به برنامه مشخص کنید...

از نظر کاربردی معمولا از رمز عبور برای جلوگیری از دسترسی افراد متفرقه به اطلاعات برنامه استفاده می شود پس بنابراین اگر از رمز عبور در برنامه بهره می برید باید به بحث امنیت آن توجه ویژه ای داشته باشید(در غیر این صورت از رمزعبور استفاده ننمایید)

ولی از نظر تئوری من هم قبول دارم که تمام مطالب آموزشی صرفا نباید خیلی کاربردی باشند ولی به هر حال همانطور که دوست عزیزمان جناب csharpnevisi فرمودند این مطلب را اکثر افراد می دانند ...
و اکثریت به دنبال مفاهیم کاربردی و رایج هستند...

این پست و پست قبلی فقط برای این بود که بیشتر در مورد مفاهیمی مانند دیتابیس و الگوریتم های رمز گذاری تحقیق کنید تا ببینید که چه روشی بهتر است و از آن بهره لازم را ببرید...

موفق باشید...

Mr.Csharp
سه شنبه 25 شهریور 1393, 21:34 عصر
یه سوال داشتم ایمن ترین روش رمز گذاری چطوریه ؟
بانک اطلاعاتی یا روش های دیگه ی مطمئن دیگه ای هم وجود داره ؟؟

farhad.k.t
چهارشنبه 26 شهریور 1393, 00:05 صبح
یه سوال داشتم ایمن ترین روش رمز گذاری چطوریه ؟ بانک اطلاعاتی یا روش های دیگه ی مطمئن دیگه ای هم وجود داره ؟؟ متاسفانه هیچ روشی کاملا امن نیست و هرگز هم نخواهد بود ولی ما می توانیم با استفاده از الگوریتم های مختلف رمزگذاری و کدنویسی ایمن ، سطح امنیتی برنامه را تا حدی ارتقا بدهیم... درباره hash کردن و الگوریتم های مختلف EncryptingوDecrypting تحقیق کنید دوست عزیز...

CsharpNevisi
چهارشنبه 26 شهریور 1393, 00:10 صبح
یه سوال داشتم ایمن ترین روش رمز گذاری چطوریه ؟
بانک اطلاعاتی یا روش های دیگه ی مطمئن دیگه ای هم وجود داره ؟؟


یه روشی وجود داره به نام MD5 که خود ماکروسافت ارائه داده ... البته بعدش اعلام کرد که انمیتش شکسته ... یه سایت هست که میتونی متنشو برگردونه ولی این سایته که تنها برنامه ای هست که این کارو با این روش میکنه و اطلاعاتشم از بانک اطلاعاتی میاره ... مطمئن باشید اگه من کلمه (محسن) رو با این روش رمز گذاری کنم و به سایت بدم نمیتونه بهم برگردونه چون تو بانکش نیست

mohammad reza beizavi
چهارشنبه 26 شهریور 1393, 00:26 صبح
یه روشی وجود داره به نام MD5 که خود ماکروسافت ارائه داده ... البته بعدش اعلام کرد که انمیتش شکسته ... یه سایت هست که میتونی متنشو برگردونه ولی این سایته که تنها برنامه ای هست که این کارو با این روش میکنه و اطلاعاتشم از بانک اطلاعاتی میاره ... مطمئن باشید اگه من کلمه (محسن) رو با این روش رمز گذاری کنم و به سایت بدم نمیتونه بهم برگردونه چون تو بانکش نیست
درود بر دوستان گرامی
فقط برای اطلاع بگم که MD5 یه روش کد کردن اطلاعاته که توسط آقای رولاند ریوست ابداع شده و یکی از بهترین روشهای کدینگ اطلاعات هست یا بهتره بگم بوده و هیچ ارتباطی هم با مایکروسافت نداره و این شرکت و بقه تنها از این روش استفاده می کنند. برای کسب اطلاعات بیشتز اینجا رو بخونید: http://en.wikipedia.org/wiki/MD5

اما مایکروسافت خیلی وقته که از الگوریتمهای بسیار بسیار قویتری مثل DES و Triple DES , AES استفاده می کنه که مختصر و مفید می تونید توی این پست ببینید:
http://stackoverflow.com/questions/5554526/comparison-of-des-triple-des-aes-blowfish-encryption-for-data


اما در کل در خصوص امنیت در نرم افزارها باید یه کوچولو توضیح بدم:
امنیت فقط این نیست که شما از کدهای عجیب و غریب و Encryption و ... استفاده کنید.
امنیت مستلزم در نظر گرفتن مراتب امنیتی در کل روند طراحی، تولید و نصب و پشتیبانی یه نرم افزاره و از کنترل دسترسی فیزیکی به سخت افزار و سیستمها و امنیت سیستم عامل و شبکه شروع میشه تا نحوه ارتباطات و ارسال مقادیر داخل نرم افزار و تعاملشون با دیگر نرم فراهای وابسته و پیاده ساززی اصولی کدهای برنامه.
هر چند هم که این روشها به صورت انفرادی خوب و پر قدرت باشند اما ترکیب درست این روشها باعث نزدیک شدن به درجه خوبی از امنیت میشه.
در کل امنیت مقوله بسیار عظیم و البته شیرینی هست که در قالب این مطالب نمیگنجه.

CsharpNevisi
چهارشنبه 26 شهریور 1393, 00:28 صبح
فقط برای اطلاع بگم که MD5 یه روش کد کردن اطلاعاته که توسط آقای رولاند ریوست ابداع شده و یکی از بهترین روشهای کدینگ اطلاعات هست یا بهتره بگم بوده و هیچ ارتباطی هم با مایکروسافت نداره و این شرکت و بقه تنها از این روش استفاده می کنند. برای کسب اطلاعات بیشتز اینجا رو بخونید: http://en.wikipedia.org/wiki/MD5
من این مطلبو تو سایت نارنجی خونده بودم ... از شما ممنونم که اطلاعات ناقص منو تصحیح کردین ... !!! :قلب:

golestan1
چهارشنبه 26 شهریور 1393, 08:49 صبح
با سلام خدمت اساتید محترم همان طور که از نام تاپیک مشخصه (آموزش ساخت فرم لاگین بدون نیاز به بانک اطلاعاتی) هدف از این اموزش اینکه افراد مبتدی اشنایی اولیه برای برنامه های کوچک داشته باشن همان طور که در توضیحات ذکر شده (برای برنامه های کوچک) که مخصوص کاربران خانگی است که مانع دیدن بعضی از اطلاعات درون برنامه شوند قصد ما ساخت برنامه حسابداری برای مایکروسافت نیست همان طور که توضیح داده شده مخصوص افراد مبتدی است اگر بخواهیم کمی امنیت برنامه رو بالا ببریم می توانیم این فایل تکست رو در درایو ویندوز و یا در مکانی که خیلی از کاربران از ان اطلاعی ندارند انتقال دهیم یا این مقادیر رو در رجیستری ثبت کنیم که خیلی ها اشنایی با ان محیط ندارند و چندین راه دیگه ..... لطف کنین و قبل از شلوغ کردن تاپیک توضیحات رو با دقت بخوانید در ضمن هر وقت اطلاعاتی مفیدی در مورد Encrypting و Decrypting وMD5 کسب کردید در تاپیک جداگانه توضیح دهید تا ما نیز از اطلاعات مفید شما بهره ببریم با سپاس

mojzkh
چهارشنبه 26 شهریور 1393, 14:33 عصر
حداقل نیاز به الگوریتم رمز گذاری مثلا باینری یا مثلا اسکندر است . با تشکر به هر حال هر کمکی ممکنه ایده و فکر مراجعه کننده هارو باز کنه و این مهمه

mohammad reza beizavi
چهارشنبه 26 شهریور 1393, 15:06 عصر
همان طور که توضیح داده شده مخصوص افراد مبتدی است ...
درود بر شما
اگر یکبار دیگه پستهای خودتون و دیگر دوستان رو مطالعه بفرمایید مطمئنا همچین متنی رو مشاهده نمی کنید.
اما مفاهیمی که درو مورد امنیت بیان شده بیشتر برای آگاهی دوستانیه که در همین تاپیک کامنت میذارن و البته "پاسخ به نقل قول" اونهاست. طبیعتا فرومهای محاوره ای این مشکلات رو به دنبال دارن.
در خصوص Encryption و مباحث دیگه هم در همین سایت اطلاعات زیادی هست که کافیه کلمه encrypt رو جستجو کنید.
پیشنهاد: در صورت امکان در در عنوان تاپیکی که میدارید عنوان رو با "مبتدی: " شروع کنید و در اولین پست تذکرات لازم برای عدم هماهنگی افراد بی اطلاع (مثل من) بذارید.
ممنون