PDA

View Full Version : expire شدن صفحه با زدن دکمه back



jeniferxp
چهارشنبه 21 فروردین 1387, 12:45 عصر
با سلام
دوستان من جهت login کردن در سایت از session استفاده کردم و مشکلی که داشتم این بود که وقتی logout میکردم و session ها را تهی می کردم و کاربر به صفحه login هدایت می شد اگر کاربر بر روی دکمه back میزد دویاره می توانست وارد برنامه شود و به منوها دسترسی داشته باشد و حالت login , logout بی معنی میشد . البته این مشکلم با کمک دوستان حل شد که گفتند باید cash را غیر فعال کنم و مشکل من هم با نوشتن کد زیر در page_load صفحه masterpage حل شد :

if (Session["mysession"].ToString() == "")
Response.Redirect("~/LoginPage.aspx");

Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Expires = -1500;
Response.CacheControl = "no-cache";


واما الان با مشکلی که روبرو شدم اینه که اگر کاربری login کنه و درون برنامه باشه اگر بدون اینکه logout کنه و بخواد دکمه back رو بزنه و صفحات قبلی رو ببینه صفحه expire میشه
می خواستم با کمک شما دوستان این مشکل رو هم حل کنم .
آیا کدی دیگر باید بنویسم ؟؟؟؟
با تشکر

raravaice
چهارشنبه 21 فروردین 1387, 13:09 عصر
سلام

شما داری خودت cache رو توی صفحه expire میکنی پس چطور توقع داری که کاربر وقتی back میکنه بازم همون صفحه قبلی رو ببینه؟!

برای expire کردن از کد زیر هم میتونی استفاده کنی.


Response.Cache.SetExpires(Now.Date.AddDays(-1))


موفق باشید

jeniferxp
چهارشنبه 21 فروردین 1387, 13:43 عصر
یعنی اگه من این کد رو هم اضافه کنم مشکل زدن back حل میشه؟
از کمکتون ممنون

el_abdollahi
چهارشنبه 21 فروردین 1387, 13:47 عصر
اگه وقتی cache رو غیر فعال کنید که کاربر log out کرده باشه . مشکلتون حل نمیشه ؟

raravaice
چهارشنبه 21 فروردین 1387, 13:49 عصر
یعنی اگه من این کد رو هم اضافه کنم مشکل زدن back حل میشه؟
خیر

شما داری خودت cache رو توی صفحه expire میکنی پس چطور توقع داری که کاربر وقتی back میکنه بازم همون صفحه قبلی رو ببینه؟!




Response.Cache.SetExpires(Now.Date.AddDays(-1))

=


Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Expires = -1500;
Response.CacheControl = "no-cache";


البته یه چیزی که الان اومد تو ذهنم اینه که بعد از اینکه cache رو پاک کردی یه بار دیگه دوباره cache رو به صفحه بده احتمالا درست میشه یا اینکه logout رو یه button تعریف کنی و تو postback کلیک اون cache صفحه رو پاک کن.
تست کن نتیجه رو اعلام کن.


موفق باشید

jeniferxp
چهارشنبه 21 فروردین 1387, 13:54 عصر
میشه بیشتر توضیح بدید؟ یعنی من باید چه کدی را و کجا بنویسم؟
با تشکر

raravaice
چهارشنبه 21 فروردین 1387, 14:26 عصر
شما logout رو یه button بزار و توی رویداد کلیک اون صفحه رو expire کن یا اینکه همونجور که گفتم بعد از expire کردن دوباره صفحه رو cache کن.

البته هر دو مورد یه فرضیه هست. تست کن نتیجه رو بگو

موفق باشید