PDA

View Full Version : فرم لاگين login و ارجاع به صفحه مربوط به خودش



sinakhan
پنج شنبه 30 اردیبهشت 1389, 13:17 عصر
سلام
از دوستان عزيز خواهش مي كنم راهنمايي كنيد.
من يه table دارم كه سه تا ستون داره :
يوزر ، پسور ، آدرس صفحه (us , ps , site)


يه صفحه لاگين با دو تا textbox دارم. مي خواهم وقتي روي دكمه Login كليك مي شه اگه يوزر و پسوردش طبق جدول ديتا بيس درست است، به صفحه مربوط به آن يوزر كه در ستون سوم همان سطر در جدول نوشته شده response شود.

اگه امكان داره كدش رو بنويسد.

البته چيزي كه من نوشتم اينه، ولي فقط سطر اول جدول رو مي خونه و response مي كنه به همون آدرس موجود در سطر اول






SqlConnection

con = newSqlConnection("Data Source=ICT1;Initial Catalog=start;Integrated Security=True");

SqlCommand com = newSqlCommand();

com.Connection = con;
com.CommandText = "select [us],[ps],[site] from [tuser]";
con.Open();
SqlDataReader dd = com.ExecuteReader();





dd.Read();




string user = dd[0].ToString().Trim();

string pass = dd[1].ToString().Trim();
string site = dd[2].ToString().Trim();





con.Close();




if



(TextBox1.Text == user.ToString() && TextBox2.Text == pass.ToString())

{

Response.Redirect(site);
}

ali_zzr
پنج شنبه 30 اردیبهشت 1389, 15:27 عصر
خب این طبیعیه.
چون شما همیشه سطر اول جدول رو میخونی.

شما باید نام یوزر رو ضمیه دستور T-Sql بکنی .یعنی بگی که داری برای کدوم کاربر رو چک میکنی


com.CommandText = "select [us],[ps],[site] from [tuser] where [us]=@user";
com.parameter.addwithvalue("@user",textbox1.text)


البته من خط دوم رو به vb نوشتم

بعد بیای چک کنی ببینی که پسورد درست هست یا نه.
اگر درست بود به آدرس هدایتش کنی.

sinakhan
پنج شنبه 30 اردیبهشت 1389, 17:09 عصر
مي شه بيشتر توضيح بدي؟ براي ارجاع چه كار كنم؟

من از parameter.addwithvalue استفاده نكردم تا حالا‌! :متفکر:

راهنمايي بيشتر لطفا ! :کف:

ali_zzr
پنج شنبه 30 اردیبهشت 1389, 19:16 عصر
در واقع شما میگی که هر سطری رو برای من نخون !!! دقیقا سطری رو بخون که username اون برابر textbox1.text هست .
خب الان اگر همچین سطری وجود داشته باشه( چنین user ی موجود باشه) میری سراغ چک کردن پسورد. اگرم نه که پیغام میدی user موجود نیست.

در مرحله بعد اگر پسورد این user برابر textbox2.text باشه به آدرس مورد نظر redirect میشه


SqlConnection con = newSqlConnection("Data Source=ICT1;Initial Catalog=start;Integrated Security=True");
SqlCommand com = newSqlCommand();
com.Connection = con; com.CommandText = "select [us],[ps],[site] from [tuser] where [us]=@username";
com.parameter.addwithvalue("@username",Textbox1.text)

con.Open();
SqlDataReader dd = com.ExecuteReader();


if dd.hasrows
dd.Read();
string user = dd[0].ToString().Trim();
string pass = dd[1].ToString().Trim();
string site = dd[2].ToString().Trim();

else

' Invalid User

end if



con.Close();



if


(TextBox2.Text == pass.ToString()) {
Response.Redirect(site); }

ali_zzr
پنج شنبه 30 اردیبهشت 1389, 19:18 عصر
البته این روش که پسورد هش نمیشه اصلا امن نیست.اینایی که گفتم جنبه آموزشی داشت

sinakhan
پنج شنبه 30 اردیبهشت 1389, 21:07 عصر
مرسی علی جان
زحمت کشیدی

درسته چون پسورد هش نمی شه امنیت نداره ولی کسی نمی تونه به دیتا بیس دسترسی پیدا کنه، چون یه وبسایت داخلی است و روی سرور خودمون نصب می شه و روی اینترنت قرار نمی گیره.

ممنون