PDA

View Full Version : سوال درباره انتقال id یوزر مربوطه به صفحه دیگر



nasim_movie
یک شنبه 23 فروردین 1394, 12:53 عصر
سلام به دوستان عزیز من یه صفحه لاگین دارم که این کد آن است:


protected
void btn_login_Click(object sender, EventArgs e)

{


string username = txtlogin.Text;


string password = txtpass.Text;


if (username == "" || password == "")

{

lblmessage.Visible =
true;

lblmessage.Text =
"لطفا اطلاعات را به صورت صحیح وارد نمایید";

}


else if (sec_code.Text != Session["sec_code"].ToString())

{

lblmessage.Visible =
true;

lblmessage.Text =
"کد امنیتی اشتباه است";

lblsec.Text =
usersUtility.generateSecurity();

}


else

{


if (usersUtility.check_login(usersUtility.sanitize_Sq l(username), usersUtility.sanitize_Sql(password)))

{


HttpContext.Current.Session.Add("username", username);

Response.Redirect(
"Default.aspx");

}


else

{

lblmessage.Visible =
true;

lblmessage.Text =
"نام کاربری یا کلمه عبور صحیح نمی باشد";

lblsec.Text =
usersUtility.generateSecurity();

}

}

}



و کلاس check_login
در بخش کلاس نوشته شده که این هم کد مربوط به این کلاس هست:


public
static bool check_login(string username, string password)

{




SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=true");


SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

cmd.CommandText =
"SELECT user_id FROM users WHERE username=@username AND password=@password";

cmd.Parameters.AddWithValue(
"@username", username);

cmd.Parameters.AddWithValue(
"@password", GenerateHash(password.Trim()));

cnn.Open();


DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader());

cnn.Close();


if (dt.Rows.Count == 1)

{


return true;


}


return false;

}


حالا من میخوام وقتی کاربر یوزر و پسوردشو میزنه وارد سیستم میشه اطلاعات خودش رو ببینه و میخوام از طریق id یوزر این کار رو بکنم یعنی id رو انتقال بدم به صفحه دیگه و بر اساس اون آی دی اطلاعات اون رو نشون بدم چطور باید این کر رو بکنم؟

nasim_movie
یک شنبه 23 فروردین 1394, 12:55 عصر
کد ها بهم ریخت این کد صفحه لاگین:



protected void btn_login_Click(object sender, EventArgs e)

{


string username = txtlogin.Text;


string password = txtpass.Text;


if (username == "" || password == "")

{

lblmessage.Visible =
true;

lblmessage.Text =
"لطفا اطلاعات را به صورت صحیح وارد نمایید";

}


else if (sec_code.Text != Session["sec_code"].ToString())

{

lblmessage.Visible =
true;

lblmessage.Text =
"کد امنیتی اشتباه است";

lblsec.Text =
usersUtility.generateSecurity();

}


else

{


if (usersUtility.check_login(usersUtility.sanitize_Sq l(username), usersUtility.sanitize_Sql(password)))

{


HttpContext.Current.Session.Add("username", username);

Response.Redirect(
"Default.aspx");

}


else

{

lblmessage.Visible =
true;

lblmessage.Text =
"نام کاربری یا کلمه عبور صحیح نمی باشد";

lblsec.Text =
usersUtility.generateSecurity();

}

}

}


این کد کلاس user_check:


public
static bool check_login(string username, string password)

{




SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=true");


SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

cmd.CommandText =
"SELECT user_id FROM users WHERE username=@username AND password=@password";

cmd.Parameters.AddWithValue(
"@username", username);

cmd.Parameters.AddWithValue(
"@password", GenerateHash(password.Trim()));

cnn.Open();


DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader());

cnn.Close();


if (dt.Rows.Count == 1)

{


return true;


}


return false;

}

sadegh.te
یک شنبه 23 فروردین 1394, 13:14 عصر
سلام میتونی ID رو بریزی داخل یخ سشن و اونو تو هر صفحه ای که خواستی دریافت کنی.

nasim_movie
یک شنبه 23 فروردین 1394, 14:11 عصر
میشه لطفا کدش رو بگید چطور باید این کارو انجام بدم؟
سلام میتونی ID رو بریزی داخل یخ سشن و اونو تو هر صفحه ای که خواستی دریافت کنی.

hamid_0341
یک شنبه 23 فروردین 1394, 15:06 عصر
میشه لطفا کدش رو بگید چطور باید این کارو انجام بدم؟
من با cookies انجام دادم.

ریختن اطلاعات داخل cookie

//create a cookie
HttpCookie myCookie = new HttpCookie("myCookie");

//Add key-values in the cookie
myCookie.Values.Add("userid", objUser.id.ToString());

//set cookie expiry date-time. Made it to last for next 12 hours.
myCookie.Expires = DateTime.Now.AddHours(12);

//Most important, write the cookie to client.
Response.Cookies.Add(myCookie);

خواندن اطلاعات از آن

//Assuming user comes back after several hours. several < 12.
//Read the cookie from Request.
HttpCookie myCookie = Request.Cookies["myCookie"];
if (myCookie == null)
{
//No cookie found or cookie expired.
//Handle the situation here, Redirect the user or simply return;
}

//ok - cookie is found.
//Gracefully check if the cookie has the key-value as expected.
if (!string.IsNullOrEmpty(myCookie.Values["userid"]))
{
string userId = myCookie.Values["userid"].ToString();
//Yes userId is found. Mission accomplished.
}

منبع http://stackoverflow.com/questions/3140341/how-to-create-persistent-cookies-in-asp-net

nasim_movie
یک شنبه 23 فروردین 1394, 15:21 عصر
من با cookies انجام دادم.

ریختن اطلاعات داخل cookie

//create a cookie
HttpCookie myCookie = new HttpCookie("myCookie");

//Add key-values in the cookie
myCookie.Values.Add("userid", objUser.id.ToString());

//set cookie expiry date-time. Made it to last for next 12 hours.
myCookie.Expires = DateTime.Now.AddHours(12);

//Most important, write the cookie to client.
Response.Cookies.Add(myCookie);

خواندن اطلاعات از آن

//Assuming user comes back after several hours. several < 12.
//Read the cookie from Request.
HttpCookie myCookie = Request.Cookies["myCookie"];
if (myCookie == null)
{
//No cookie found or cookie expired.
//Handle the situation here, Redirect the user or simply return;
}

//ok - cookie is found.
//Gracefully check if the cookie has the key-value as expected.
if (!string.IsNullOrEmpty(myCookie.Values["userid"]))
{
string userId = myCookie.Values["userid"].ToString();
//Yes userId is found. Mission accomplished.
}

منبع http://stackoverflow.com/questions/3140341/how-to-create-persistent-cookies-in-asp-net


ممنونم از پاسختون این کد را تو کدوم قسمت بنویسم؟الان مشکل اینکه نمیدونم چطور آی دی اون یوزر مورد نظر رو در بیارم و بعد انتقال بدم

notlikeothers
یک شنبه 23 فروردین 1394, 18:00 عصر
سلام به نظرم از سشن استفاده بشه بهتره یا لا اقل اگه از کوکی استفاده مکنید encrypt بشه بهتره
**امنیت سشن از کوکی بیشتره

nasim_movie
یک شنبه 23 فروردین 1394, 18:21 عصر
خیلی ممنونم دوستان از پاسخ هاتون

یکی به من بگه چطوری و کجای کد از سشن یا کوکی یا کوئری استرینگ استفاده کنم الان مشکل من اینه که نمیدونم کجای کد استفاده کنم نه که ندونم از چه روشی استفاده کنم!!!!!!!!

لطفا کمک کنید عجله دارم!!

سلام به نظرم از سشن استفاده بشه بهتره یا لا اقل اگه از کوکی استفاده مکنید encrypt بشه بهتره
**امنیت سشن از کوکی بیشتره

hamid_0341
دوشنبه 24 فروردین 1394, 13:23 عصر
شما فقط باید id یوزر لاگین کرده رو داخل سشن بریزید. سرچ کنید

nasim_movie
دوشنبه 24 فروردین 1394, 14:27 عصر
شما فقط باید id یوزر لاگین کرده رو داخل سشن بریزید. سرچ کنید

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

notlikeothers
چهارشنبه 26 فروردین 1394, 01:23 صبح
ببین من خودم در این موارد از سشن استفاده میکنم.نکته سشن اینه که نباید زیاد استفاده شه چون به سرور فشار وارد میکنه.حدا اکثر سه بار به نظر من.
نحوه استفاده:
session["sessionname"]=id
این کد تو صفحه که ای دی داری
کد زیر هم تو هر صفحه از سایت که نیاز داری از ای دی استفاده کنی
int id=int.parse(session["sesseionname"].tostring());