PDA

View Full Version : سرچ کردن جدول



اسماعیلی
سه شنبه 23 مرداد 1386, 01:00 صبح
درقسمتی از پروژه ام تنها کسانی که ثبت نام کرده اند میتوانند صفحات بعد را ببینند .اما درزمان واردشدن با نام کابر وکلمه عبورشان فقط اولین نفری که ثبت نام کرده را قبول میکند و به او اجازه وارد شدن میدهد و به بقیه کاربران حتی با اینکه ثبت نامشان با موفقیت انجام شده ولی اجازه ورود ندارد . در کلیک باتن نوشته ام :


conn.Open();
try
{
string s1 = "select name from manager where name ='" + nameTextBox.Text + "'";
SqlCommand comd = newSqlCommand(s1, conn);
string n = comd.ExecuteScalar().ToString();
string s2 = "select password from manager where password='" + passTextBox.Text + "'";
SqlCommand comd1 = newSqlCommand(s2, conn);
string m = comd1.ExecuteScalar().ToString();

if (n != "")
if (m != "")
{
Response.Redirect("managment.aspx");
}
}

catch { massageLabel2.Text = " try again"; };

در ضمن متغییر number از نوع nvarchar و متغییر password از نوع int است .:گریه:

hdv212
سه شنبه 23 مرداد 1386, 01:41 صبح
با توجه به اینکه شما میگید متغیر password از نوع int هست نباید از ' در دستور Select استفاده کنید و دیگه اینکه باید اونو ابتدا به int ببرید، به هر حال من کد شما رو به این صورت اصلاح کردم که امیدوارم مشکلت حل بشه، فقط خود بلوک try-catch رو اضافه کن :

string strCommand = "select * from manager where name='"+nameTextBox.Text + "' and password="+int.Parse(passTextBox.Text);
SqlCommand comd = newSqlCommand(strCommand, conn);
SqlDataReader dr;
conn.Open();
dr = cmd1.ExecuteReader();
if(dr.HasRows)
{
Response.Redirect("managment.aspx");
dr.Close();
conn.Close();
}
else
{
dr.Close();
conn.Close();
}

MH2538
سه شنبه 23 مرداد 1386, 09:43 صبح
سلام
دوست عزیز اسماعیلی
فکر نمی کنی کدت خیلی ناامنه!
فرض کن دو نفر با دونام کاربری متفاوت و رمز عبور متفاوت ثبت نام می کنند.
مثلاً
نام کاربری نفر اول :‌User1 رمز عبور :‌Pass1
نام کاربری نفر دوم :‌User2 رمز عبور :‌Pass2

حالا نفر اول میاد و نام کاربری رو وارد می کنه User1 ولی رمز عبور رو میزنه Pass2
با اینکه رمز و نام کاربری مال یکنفر نیست ولی وارد می شه.

حالت بدتر:
فرض کن من بخوام سیستمت رو هک کنم.
نام کاربری یکنفر رو می دونم ولی رمز عبورش رو نمی دونم.
حالا خودم میام و ثبت نام می کنم و یک نام کاربری و یک رمز عبور دریافت می کنم.
حالا وارد صفحه ورود می شم (Login)
نام کاربری کسی رو که می خوام اطلاعاتش رو ببینم به همراه رمز عبور خودم رو می دم.
من خیلی راحت وارد سیستمت شدم و اطلاعات نفر اول رو دارم می بینم.!!!

در مورد int.Parse(passTextBox.Text); هم باید بگم نیازی به پارس کردن نیست.
کافیه اون رو بین تک‌کتیشن (") نگذارید تا Int‌ فرض شه.

اسماعیلی
چهارشنبه 24 مرداد 1386, 18:05 عصر
[.



حالت بدتر:
فرض کن من بخوام سیستمت رو هک کنم.
نام کاربری یکنفر رو می دونم ولی رمز عبورش رو نمی دونم.
حالا خودم میام و ثبت نام می کنم و یک نام کاربری و یک رمز عبور دریافت می کنم.
حالا وارد صفحه ورود می شم (Login)
نام کاربری کسی رو که می خوام اطلاعاتش رو ببینم به همراه رمز عبور خودم رو می دم.
من خیلی راحت وارد سیستمت شدم و اطلاعات نفر اول رو دارم می بینم.!!!

خیلی ممنون از پیشنهادتون ولی این مشکل رو حل کردم فقط کدش رو اینجا ننوشتم