PDA

View Full Version : مبتدی: ساخت فرم لاگین



soheil2020
شنبه 30 دی 1391, 14:56 عصر
سلام

من در سی شارپ یک پایگاه داده درست کردم و یک جدول به نام tabel1 و داخلش چهار فیلد name ,family,username,password
قرار داره و خودم دستی بهش مقدار دادم

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

واقعا دارم دیونه میشم نمیدونم چیکارکنم لطفا کمک کنید

ma.rad
شنبه 30 دی 1391, 15:03 عصر
سوالتون بسار تکراریه،قبل از ایجاد تاپیک جستجو کنید
http://barnamenevis.org/search.php?searchid=1620921

soheil2020
شنبه 30 دی 1391, 15:04 عصر
سوالتون بسار تکراریه،قبل از ایجاد تاپیک جستجو کنید
http://barnamenevis.org/search.php?searchid=1620921

هیچ مورد جدیدی یافت نشد.


درضمن سرچ کردم اما چیزی واسه سی شارپ پیدا نکردم

hgh.just.hony
شنبه 30 دی 1391, 15:11 عصر
سلام
اینا رو تو سایت یا تو گوگل سرچ کن
قالب اصلی کار اینه:
1 جدول بساز تو sql(local sql in visual studio or sql server managment install ion you pc)
2 با لینک بنویس یا با انتیتی linq to sql --- entity frame work
3 practice time
از نوشته های Mr. gwbasic مدیر همین تالار برای یاد گرفتن انتیتی استفاده کن
مورد ا (http://barnamenevis.org/search.php?searchid=1620952)
2مورد (http://barnamenevis.org/list.php?author/25140-gwbasic)
تو تالار سرچ کن.مخصوصا نمونه پروژه های تالار نگاه کن:لبخندساده:

ma.rad
شنبه 30 دی 1391, 15:14 عصر
هیچ مورد جدیدی یافت نشد.


درضمن سرچ کردم اما چیزی واسه سی شارپ پیدا نکردم

تو قسمت جستجوی پیشرفته برید وتو عنوان جستجو "فرم لاگین" بنویسید فقط 7مورد همن عنوان رو دارن مثلا
http://barnamenevis.org/showthread.php?239954-%D9%86%D8%AD%D9%88%D9%87-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%81%D8%B1%D9%85-%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%28-LOGIN%29-%D8%A7%D8%B2-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%AA%D8%A7-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87&highlight=%D9%81%D8%B1%D9%85+%D9%84%D8%A7%DA%AF%DB %8C%D9%86

http://barnamenevis.org/showthread.php?366426-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%81%D8%B1%D9%85-%D9%84%D8%A7%DA%AF%DB%8C%D9%86&highlight=%D9%81%D8%B1%D9%85+%D9%84%D8%A7%DA%AF%DB %8C%D9%86

http://barnamenevis.org/showthread.php?263556-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%81%D8%B1%D9%85-%D9%84%D8%A7%DA%AF%DB%8C%D9%86-!!!!&highlight=%D9%81%D8%B1%D9%85+%D9%84%D8%A7%DA%AF%DB %8C%D9%86

soheil2020
شنبه 30 دی 1391, 15:24 عصر
خب از همینا من پیدا کردم ولی میزارم مشکل داره
از این خطش data1.Fill(dss, "t");
مشکل میگیره



{
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True";
;
SqlDataAdapter data1 = new SqlDataAdapter();
data1.SelectCommand = new SqlCommand();

data1.SelectCommand.Connection = objcon;
data1.SelectCommand.CommandText = "select username,pass where username=@1 and pass=@2";
data1.SelectCommand.Parameters.AddWithValue("@1", tb.Text);
data1.SelectCommand.Parameters.AddWithValue("@2", tb2.Text);
DataSet dss = new DataSet();
objcon.Open();
data1.Fill(dss, "t");
objcon.Close();

if (dss.Tables["t"].Rows.Count != 0)
{
MessageBox.Show("hi","hi");

}
else
{
MessageBox.Show("hiww", "hwwi");


}

}

فیلم اموزش به زبان فارسی وجود نداره که اینها رو اموزش داده باشه ؟

danialafshari
شنبه 30 دی 1391, 15:34 عصر
سلام
خیلی بحث شده و قبلا هم سورسش رو ساختم و گذاشتم و محددا می زارم
بفرمائید:

soheil2020
شنبه 30 دی 1391, 15:41 عصر
سلام
خیلی بحث شده و قبلا هم سورسش رو ساختم و گذاشتم و محددا می زارم
بفرمائید:

با access نوشتین ؟

khokhan
شنبه 30 دی 1391, 15:41 عصر
خب از همینا من پیدا کردم ولی میزارم مشکل داره
از این خطش data1.Fill(dss, "t");
مشکل میگیره



{
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True";
;
SqlDataAdapter data1 = new SqlDataAdapter();
data1.SelectCommand = new SqlCommand();

data1.SelectCommand.Connection = objcon;
data1.SelectCommand.CommandText = "select username,pass where username=@1 and pass=@2";
data1.SelectCommand.Parameters.AddWithValue("@1", tb.Text);
data1.SelectCommand.Parameters.AddWithValue("@2", tb2.Text);
DataSet dss = new DataSet();
objcon.Open();
data1.Fill(dss, "t");
objcon.Close();

if (dss.Tables["t"].Rows.Count != 0)
{
MessageBox.Show("hi","hi");

}
else
{
MessageBox.Show("hiww", "hwwi");


}

}

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

دستور ساخت فرم لاگین

1 یه پروژه جدید درست کن

2 تا فرم ایجاد کن که البته یکیش اتمات ایجاد شده

3 توی فرم اول یه کمبو باکس ویه تکس باکس ودو تا باتن بذار

در باتن اول اینطوری می نویسی

:
private void buttonX3_Click(object sender, EventArgs e)
{
string type;
if (comboBoxEx1.SelectedIndex == 0) type = "admin";
else type = "user";
string s = "select id from login where type='" + type + "'and users='" + textBoxX1.Text + "' and id='" + textBoxX2.Text + "' ";
sqlbDataAdapter da = new sqlDataAdapter(s, con);
da.Fill(ds, "t1");
if (ds.Tables["t1"].Rows.Count > 0)
{


this.Hide();
main fm = new main();
fm.ShowDialog();

}
else
{
MessageBox.Show("رمز عبور یا نام کاربری اشتباه می باشد", "اخطار");
}
}
باتن دوم هم که برا کنسل هست خودت یه چیزی درس کن بنویس که فرم رو ببنده واز برنامه خارج بشه

soheil2020
شنبه 30 دی 1391, 15:49 عصر
ببنید الان هرکسی بتونه میره فایل access رو دستکاری میکنه و یه یوزنیم و پسورد جدید میسازه

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

ولی اینجوری هرکس میره access رو ادیت میکنه ! یه شناسه میسازه

khokhan
شنبه 30 دی 1391, 15:59 عصر
ببنید الان هرکسی بتونه میره فایل access رو دستکاری میکنه و یه یوزنیم و پسورد جدید میسازه

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

ولی اینجوری هرکس میره access رو ادیت میکنه ! یه شناسه میسازه

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

شرط بزار که اگه ای دی کاربر بود یعنی مدیر

واگه غیر از این بود یعنی ...

یه گوشه واریبل هم بذار توفرم اصلی که اگه کاربر مدیر نبود فلان دکمه غیر فعال باشه

اینطوری :
private void buttonX3_Click(object sender, EventArgs e)
{
string type;
if (comboBoxEx1.SelectedIndex == 0) type = "admin";
else type = "user";
string s = "select id from login where type='" + type + "'and users='" + textBoxX1.Text + "' and id='" + textBoxX2.Text + "' ";
OleDbDataAdapter da = new OleDbDataAdapter(s, con);
da.Fill(ds, "t1");
if (ds.Tables["t1"].Rows.Count > 0)
{
if (comboBoxEx1.SelectedIndex == 0)
variable.i = 1;
else
variable.i = 2;

this.Hide();
main fm = new main();
fm.ShowDialog();

}
else
{
MessageBox.Show("رمز عبور یا نام کاربری اشتباه می باشد", "اخطار");
}
}

khokhan
شنبه 30 دی 1391, 16:01 عصر
فرم اصلی هم اینطوری می شه


private void Form1_Load(object sender, EventArgs e)
{
if (variable.i == 2)
{
labelX1.Text = "کاربر عادی";
buttonItem14.Enabled = false;
buttonItem15.Enabled = false;
buttonItem16.Enabled = false;
buttonItem20.Enabled = false;
buttonItem22.Enabled = false;
buttonItem23.Enabled = false;
}
else
labelX1.Text = "مدیر";

soheil2020
شنبه 30 دی 1391, 16:04 عصر
دوست خوبم خیلی ممنونم از پاسخت و راهنمایی

ولی ببین منظور من اینه که الان اگر هرکسی به پوشه

bin\Debug

محتویات فایل access اونجا قرار داره

و طرف میتونه با باز کردن access بره تو جدول مدیر و یک یوزنیم و پسورد بسازه و به عنوان مدیر لاگین کنه !

مشکل اینجاست

نمیدونم با SQL این مشکل به وجود میاد یا نه !

khokhan
شنبه 30 دی 1391, 16:06 عصر
دوست خوبم خیلی ممنونم از پاسخت و راهنمایی

ولی ببین منظور من اینه که الان اگر هرکسی به پوشه

bin\Debug

محتویات فایل access اونجا قرار داره

و طرف میتونه با باز کردن access بره تو جدول مدیر و یک یوزنیم و پسورد بسازه و به عنوان مدیر لاگین کنه !

مشکل اینجاست
:لبخند:این دیگه خیلی تخصصی شد
بهتره عنوان تاپیک رو عوض کنی و بگذاری بسیا ر پیشرفته :چشمک:

khokhan
شنبه 30 دی 1391, 16:11 عصر
بیل گیتس اینهمه نگران رمز ویندوزش نیست که شما نگران رمز یوزر تون هستین :لبخند:

danialafshari
شنبه 30 دی 1391, 16:13 عصر
سلام


با access نوشتین ؟
بله Access هست


دوست خوبم خیلی ممنونم از پاسخت و راهنمایی

ولی ببین منظور من اینه که الان اگر هرکسی به پوشه

bin\Debug

محتویات فایل access اونجا قرار داره

و طرف میتونه با باز کردن access بره تو جدول مدیر و یک یوزنیم و پسورد بسازه و به عنوان مدیر لاگین کنه !

مشکل اینجاست
برای حل این مشکل هم باید داده رو رمز نگاری و دی رمزنگاری (Encode & Decode) کنید
بفرمایید:
رمز نگاری (http://barnamenevis.org/showthread.php?307284-%DA%A9%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D8%AA%D9%86-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE)

موفق باشید

soheil2020
شنبه 30 دی 1391, 16:17 عصر
سلام


بله Access هست


برای حل این مشکل هم باید داده رو رمز نگاری و دی رمزنگاری (Encode & Decode) کنید
بفرمایید:
رمز نگاری (http://barnamenevis.org/showthread.php?307284-%DA%A9%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D8%AA%D9%86-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE)

موفق باشید

برنامه ها فروشگاه و حساب داری که درحال حاضر با قیمت 500-600هزارتومان فروخته میشه همین مشکلو دارند ؟

یعنی بیشتر اونا هم با acess نوشتن ؟

danialafshari
شنبه 30 دی 1391, 16:50 عصر
برنامه ها فروشگاه و حساب داری که درحال حاضر با قیمت 500-600هزارتومان فروخته میشه همین مشکلو دارند ؟

یعنی بیشتر اونا هم با acess نوشتن ؟

ممکنه اونا رمز نگاری کنن
ولی با اکسس نیستند معمولا با SQL هستند
این سورس من یک نمونه تمرینی بود !

soheil2020
شنبه 30 دی 1391, 17:32 عصر
دوستان کد زیر چه مشکلی داره که ارور میگیره ازم ؟
:ناراحت::ناراحت:


SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True";
DataTable db = new DataTable();
SqlDataAdapter adap = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "SELECT pass FROM Table1 WHERE pass=@p1";
cmd.Parameters.AddWithValue("@p1",textBox1.Text);
cmd.ExecuteNonQuery();
adap.SelectCommand = cmd;
adap.SelectCommand.ExecuteNonQuery();
db.Clear();
adap.Fill(db);
con.Close();
if (db.Rows.Count != 0)
{
Form2 frm2 = new Form2();
frm2.Show();
this.Hide();
}
else
{
MessageBox.Show("اشتباه است");
}

danialafshari
شنبه 30 دی 1391, 18:05 عصر
سلام
از اون کدی که در اون تاپیک گزاشتم استفاده کن

naghshineh m&h
پنج شنبه 12 بهمن 1391, 18:48 عصر
دوستان جواب خیلی ساده است کاری که بانک مرکزی برای ذخیره پسوردها انجام میده تا حتی اشخاصی که بانک اطلاعاتی را دارند نتوانند محتویاتش را بفهمند فقط کافی هست اطلاعات را به Hash تبدیل کنی یه قسمت از نرم افزاری که پارسال نوشتم مربوط به لاگین را براتون میزارم

////احراز هویت کاربر

string strhashconvert;


strhashconvert = txtPassword.Text.GetHashCode().ToString();

MessageBox.Show(strhashconvert.ToString());

SqlConnection con = new SqlConnection();
con.ConnectionString = Labratoary.Class.PrpertyForSqlConnection._Connecti on.ToString() ;
con.Open();
SqlCommand command = new SqlCommand();
command.Connection = con;
command.CommandText = "SELECT username,password from Authentication WHERE username=@user AND password=@pass";
command.Parameters.AddWithValue("@user", txtUsername.Text);
command.Parameters.AddWithValue("@pass", strhashconvert );
SqlDataReader reader;
reader = command.ExecuteReader();


if (reader.HasRows == true)
{
con .Close ();
//یک پیغام بده که درست است و برو داخل نرم افزار
else
//یک پیغام بده که غلط است و...
con.Close();

naghshineh m&h
پنج شنبه 12 بهمن 1391, 18:52 عصر
وقتی که شخصی بره داخل ویرایش بانک اطلاعاتی مثلا کاربر محمد و پسورد d15djh%%fdsjfdjbcbshcjbsdchjdssakdhsajd&&f%%11513131312 بهش نشون داده میشه در صورتی که پسوردش 1366 است مطمئن باش اگر الگوریتم را درست پیاده سازی کنی خودت هم اگر پسوردت را گم کنی دیگه کاری از دستت بر نمیاد

ordebehesht
پنج شنبه 12 بهمن 1391, 19:07 عصر
یه سوال شما میگی نام و کلمه عیور هر دو هش میشن و دیگه غیر فابل خوانایی هستش خوب تا اینجا درست اما کار بر میتونه یه مثال برنامه بنویسه کدی رو هش کنه تو بانک ذخیره کنه بعد وارد برنامه شه

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

naghshineh m&h
دوشنبه 16 بهمن 1391, 20:28 عصر
دوست عزیز بعد از اینکه اطلاعات را هش کردی خودتون یک الگوریتم (مثلا هش+125-148+کد اسکی حرف A) را به هش اضافه کن هم موقع خوندن و هم نوشتن و در مورد اینکه کاربر نتونه بره تو بانک اطلاعاتی بستگی داره که چطور پسورد را بدست میاره یعنی شما بانک را در حالت Mixed Mode نصب کرده اید یا خیر در هر صورت اطلاعاتی که به این شکل هش بشه قابل باز یابی نیست چون با استثنا تابع هش الگوریتمی دارد که شما ابداع کردید
و اگر مثلا او نام کاربری به نام A بسازد و پسورد هم به صورت هش شده برای آن در بانک ذخیره کند بازهم فایده ای ندارد چون شما هش ساخته شده را دستکاری میکنید (موقع خواندن و نوشتن ) پس نمیتواند وارد شودضمنا یک قسمت توی فرم لوگین اضافه کن که مثلا اگر کاربر بیش از سه بار پسورد اشتباه زد نرم افزار آخرین اسم اشتباهی را که وارد کرده ذخیره کند و خارج شود این بعدا خیلی به کارتون میاد....