PDA

View Full Version : سوال: نحوه نمایش اطلاعات کاربران پس از لاگین و ورد به صفحه admin؟



پیام حیاتی
پنج شنبه 16 مهر 1394, 17:58 عصر
سلام
اطلاعات کاربران در جدول بانک اطلاعاتی ذخیره شده است ، می خواهم کاربر پس از لاگین کردن و انتقال از صفحه لاگین به ادمین در صفحه ادمین مشخصاتش چاپ بشه به چه شکل باید این کار رو انجام بدم؟

razeghaik1
پنج شنبه 16 مهر 1394, 18:54 عصر
شما به نظر من بهتره وقتی کاربر به صفحه ادمین رسید اطلاعات کاربر رو توی سشن ذخیره کنی و بفرسی و یا با کوئری استرینگ و یا اینکه یه select دیگه به بانک بزنی تا مشخصات رو نشون بده.

پیام حیاتی
پنج شنبه 16 مهر 1394, 21:57 عصر
اطلاعات در بانک هستند،کوئری selectدر admin را به چه شکل بنویسم که بر اساس نام کاربری و رمز عبور وارد شده در صفحه لاگین نمایش داده بشه؟
این کدهای دکمه لاگین هست :

SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=Home;Integrated Security=SSPI;");
SqlCommand cmd = new SqlCommand("select * from T_Namayandegi where n_user='" + txtUser.Text + "' and n_pass='" + txtPass.Text + "' ", con);
cmd.CommandType = CommandType.Text;
DataTable dt = new DataTable();
con.Open();
SqlDataReader Reader = cmd.ExecuteReader();
dt.Load(Reader);
con.Close();


if (dt.Rows.Count != 0)
{
Session["n_id"] = dt.Rows[0]["n_id"];


Response.Redirect("admin.aspx");
}
else
{
Label1.Visible = true;
Label1.Text = "نام کاربری / رمز عبور نادرست می باشد.";
}


نمیتونم از کوئری استرینگ در سشن استفاده کنم.

پیام حیاتی
جمعه 17 مهر 1394, 14:33 عصر
بروزرسانی.....

aminmousavi
جمعه 17 مهر 1394, 14:44 عصر
سلام پیام جان .
چون اینجور اطلاعات بسیار پرکاربرد هست ، و ممکنه مثلا مثل همین سایت ، username من بالای صفحه چاپ بشه ! اگر من فقط id رو ذخیره کنم در Session با هر صفحه ای که باز کنم باید یکبار select بزنم در دیتابیس تا username رو نشون بدم ، همانطور که به نظر بیاد یک با سنگین و بیهوده ای رو به سایت ات اضافه میکنه .
پیشنهاد میکنم یک کلاس مثلا به اسم infoUsers بساز . که فیلدهاش هست id,Username,Name,Family,Age,Tel,Mobile و هر اطلاعاتی که میخوای نشون بدی ، بعد در صفحه login جای انتساب id به Session این کلاس رو بساز بعد از Select زدن در دیتابیس مقدار کلاس رو پر کن و این کلاس رو انتساب بده به Session

پیام حیاتی
جمعه 17 مهر 1394, 15:23 عصر
ایمن جان دارم یک cms مشاور املاک به عنوان نمونه کار و درگیر کردن خودم با کدها می نویسم ، از اونجا که سواد بنده بسیار کمتر از شما و اساتید دیگر هست به مشکلات زیادی بر می خورم ، نماینده های املاک بعد از لاگین شدن فقط به صفحه مدیریت جهت ثبت املاک هدایت میشن می خواهم زمانی که هدایت شدن کد نمایندگی که در جدول n_id هست رو به صفحه ادمین انتقال و در یک متغیر ذخیره کنم تا در زمان ثبت آن را در جدول املاک قرار بدم اینطوری متوجه میشم املاکی که ثبت شده مربوز به کدام نماینده هست.
به صورت زیر مقدار n_id کاربر رو دریافت و به صفحه مدیریت منتقل می کنم :

Session["n_id"] = dt.Rows[0]["n_id"];
Response.Redirect("admin.aspx");

صفحه ادمین :


Data is: <%=Session["n_id"] %>

135887
این n_id رو چطور باید در متغیر ذخیره کنم الآن؟

aminmousavi
جمعه 17 مهر 1394, 17:46 عصر
همانطور که میدونی توی Session شما میتونید object ذخیره کنید ، به این معنی که هر چیزی میتوانید به Session مقدار دهید حتی یک control !
برای کار شما اول یک class میسازیم :

public class InfoLogin
{
public int ID { get; set; }
public bool Jensiyat { get; set; }
public string Name { get; set; }
public string Family { get; set; }
public string FullName { get { string res = "خانم "; if (Jensiyat) { res += "آقای "; } res += (Name + " " + Family); return res; } }
public InfoLogin(int _id, bool _jensiyat, string _name, string _family)
{
ID = _id;
Jensiyat = _jensiyat;
Name = _name;
Family = _family;
}
}


و بعد در صفحه login اینگونه به Session مقدار میدیم :


InfoLogin record = new InfoLogin(Convert.ToInt32(dt.Rows[0]["n_id"]), Convert.ToBoolean(dt.Rows[0]["n_jensiyat"]), dt.Rows[0]["n_name"].ToString(), dt.Rows[0]["n_family"].ToString());
Session.Add("Login",record);


و سپس برای نمایش دادن از کد زیر بهره میبریم :


Data is: <%= ((InfoLogin)Session["Login"]).ID %>

پیام حیاتی
جمعه 17 مهر 1394, 19:15 عصر
ممنون امین جان مشکل در ذخیره سشن نمایش داده شده هست،این سشن نمایش داده شده در صفحه ادمین رو می خواهم در یک متغیر ذخیره کنم.

protected void Page_Load(object sender, EventArgs e)
{
if (Session["n_id"] == null)
Response.Redirect("login.aspx");


var bingo = Session.StaticObjects;
Label1.Text = bingo.ToString();


}

پیام حیاتی
شنبه 18 مهر 1394, 11:41 صبح
مشکل با راهنمایی های امین جان برطرف شد.
آی دی نماینده در سشن رو به صورت زیر در جدول بانک اضافه کردم :

con.Open();
string Query = "insert into T_Amlak (am_title_home , am_cod_namayndegi) values ('" + txtSubject.Text + "' , '" + Session["n_id"].ToString() + "') ";
SqlCommand com = new SqlCommand(Query, con);
com.ExecuteNonQuery();
con.Close();