PDA

View Full Version : سوال: ارسال متغیر بین صفحات؟؟؟



nice_boy_a
جمعه 14 مرداد 1390, 19:16 عصر
سلام.
ارسال متغیر بین دو صفحه رو بلدم ولی ارسال بین چند صفحه رو بلد نیستم.
مثلا کاربر، نام کاربری و کلمه عبور رو وارد کرد،وارد صفحه ی اصلیش میشه،
و اون بالا نوشته میشه: "علی خوش آمدید".
تا این جا مشکلی ندارم.
ولی وقتی کاربر روی یک لینک از منوهای بالای صفحه کلیک کرد و به اون صفحه رفت،دیگه نمی دونم چه جوری اسمش رو بالای صفحه بذارم.(بالای تمام صفحات باید "علی خوش آمدید" باشه.)
من واسه ورود به صفحه اصلی کاربر از دستور Response.Redirect استفاده میکنم و متغیری رو هم همراهش میفرستم.
منوها رو تو MasterPage گذاشتم، واسه همین وقتی کاربر روی یک لینک از منو
کلیک میکنه نمیتونم متغیر به اون صفحه ارسال کنم.
لطفا راهنمایی کنید.
تشکر.

hjran abdpor
جمعه 14 مرداد 1390, 20:15 عصر
برای این کار معمولا از کنترل login خود دات نت استفاده میکنند ، ولی با همون Response.Redirect هم میتوننی پیاده سازیش کنی به این صورت البته با Session
یک لیبل تو مسترپیجت بزار و بعد از لوگین مقدار Session را بهش انتساب بده . ولی تو چون QueryString استفاده میکنی با همون کنترل login خود دات نت انجام بده.

سرچ کن تو سایت خیلی مطلب در این مورد است
موفق باشی

reza4359
شنبه 15 مرداد 1390, 05:21 صبح
خوب دوست من شما مگه از master page استفاده نکردید خود login view تون رو داخل master page قرار بدید تا در همه صفحات نشون بده
اگر هم یکی از صفحاتتون از مستر پیج ارث نمیبره خوب یه label بذارید واین کدو بنویسید
Page.User.Identity.Name.ToString();

nice_boy_a
شنبه 15 مرداد 1390, 12:30 عصر
با Login دات نت نمیخوام انجام بدم.
داخل Master Page منوها رو گذاشتم که تو همه ی صفحه ها منو باشه.
هم از Session استفاده میکنم هم از QueryString.
این کد رو وقتی کاربر Login میکنه مینویسم
Response.Redirect("Main.aspx?a=1");
این دستور متغیر a رو با مقدار 1 به صفحه main میبره.
حالا مثلا کاربر روی لینک "تنظیمات" که داخل منو قرار داره کلیک کرد(منو ها در Master Page هست و صفحه Main از Master Page استفاده مکنه)
چه جوری به صفحه ی تنظیمات متغیر a با مقدار 1 رو ارسال کنم؟

reza4359
شنبه 15 مرداد 1390, 14:05 عصر
if (Request.QueryString["a"] == "1")
{

}
}

hjran abdpor
شنبه 15 مرداد 1390, 16:55 عصر
برای لوگین کردن کار شما درست است ولی مشکل امنیتی دارید . راحت سایت شما هک می شود ، برای جلوگیری از هک شدن نام کاربری و رمز عبور را حداقل Hash کنید.

nice_boy_a
شنبه 15 مرداد 1390, 18:06 عصر
if (Request.QueryString["a"] == "1")
{

}
}

راستش نفهمیدم واسه چی از این کد استفاده میشه! لطفا یه توضیح بدین.
از این کد کجا استفاده کنم ؟
تو صفحه ی Master Page یا تو صفحه ی تنظیمات یا جای دیگه؟

dontspeak
یک شنبه 16 مرداد 1390, 03:37 صبح
دوست عزیز شما باید لینک خودتون رو در صفحه masterpage تغییر بدین برای این کار هم می تونید از شرطی که دوستمون گفتند استفاده کنید. از این شرط هم باید در صفحه Main.aspx استفاده کنید. هرچند من بطور کل از نظر امنیتی این موضوع رو رد میکنم. من آموزش دسترسی به یک کنترل masterpage رو اینجا (http://www.learningweb.ir/showthread.php?64-%D8%AA%D8%B9%DB%8C%D9%86-%D8%B5%D9%81%D8%AD%D9%87-%D8%A7%D8%B5%D9%84%DB%8C)قرار دادم
موفق باشید

میلاد قاضی پور
یک شنبه 16 مرداد 1390, 05:24 صبح
از کوکی هم میتونید استفاده کنید . کوکی رو بنویسید و اگر در مستر پیج یک اسکریپت بنویسید که کوکی رو دریافت کنه در تمام صفحات میتونید مقدار رو داشته باشید .

Naranj
یک شنبه 16 مرداد 1390, 07:28 صبح
شما می تونی لینک منوها رو در زمان اجرا اعمال کنید اگر می خواهید آدرس لینک شما به این صورت در بیاد pageName.aspx?a=?

مثلا متغیر a بعد از ورود هر کاربر مقداری می گیرد.
برای اینکار مثلا به لینک مربوط به صفحه ی Setting در زمان page Load مستر پیج این کد رو انتساب می دهید

hyperink1.navigateUrl="setting.aspx?a="+مقدار که بعد از وزود کاربر خوانده می شود

استفاده از Session بهتر هست