PDA

View Full Version : بستن دکمه back بعد از logout کردن



آرام جان گل
دوشنبه 13 مرداد 1393, 09:39 صبح
با سلام
من زمانی که دکمه logout را می زنم و از طریق کد responce.redirect به صفحه login ارجاع داده می شوم با زدن دکمه backspace دوباره به صفحه قبلی که از آن خروج را کلیک کرده بودم برمی گردد اما با یک درخواست سمت سرور متوجه می شه که session خالی شده و به صفحه logout برمی گرده

راهی هست که جلوی بازگشت کاربر را بعد از logout به صفحه جاری ببندیم
ممنون راهنمایی کنید.

aminmousavi
دوشنبه 13 مرداد 1393, 12:31 عصر
با سلام .
منظورتون این هست که تا Postback (کلیک کردن و ....) نخوره صفحت متوجه نمیشه Session نداره ؟

اگر منظورتون این بوده و از مسترپیج استفاده میکنی چکینگ session رو تو PageLoad مسترپیچ بزار ، اگر هم استفاده نمیکنی در PageLoad همه ی صفحات بزار :


if (!this.IsPostBack){


if (Page.Session["esme session login"] != null)
{
.
.
.
.
.
}
else
{
Response.Redirect("Login.aspx");
}


}

آرام جان گل
دوشنبه 13 مرداد 1393, 13:15 عصر
باسلام
ممنون کاربر aminmousavi از اینکه پاسخ دادید.
نه منظور من این نیست .

این را می دونم که باید در زمان لود صفحاتم session را چک کنم و اگر خالی هست کاربر را به صفحه لاگین ارجاع بدم

مشکل من اینه:
وقتی کاربر را بعد از چک کردن session به صفحه لاگین ارجاع می دم ، کاربر دکمه BackSpace را فشار می ده و مرورگر چون قبلا مثلا صفحه مقالات را دیده دوباره به مقالات میره اما لود صفحه اجرا نمیشه که session خالی را چک کنه پس با وجود خروج کاربر دوباره به مقالات میره.

می خوام ببینم که دوستانی که توی صفحاتشون logout دارن با زدن backSpace دوباره می تونن صفحات سایت را ببینن؟

اصلا اجازه بدید سوالم را این طوری بپرسم : آیا با زدن دکمه BackSpace لود صفحه قبلی شما اجرا میشه ؟
چرا از من اجرا نمیشه؟

ممنون راهنمایی کنید.

aminmousavi
دوشنبه 13 مرداد 1393, 15:19 عصر
سلام مجدد :لبخند:

متوجه منظورتون شدم ، با backspace وقتی صفحه قبلی رو میبینید بخاطر این هست که صفحه قبلی Cache شده اگر اجازه Cache شدن داده باشید (که به صورت پیشفرض ASP میده) صفحه قبلی با backspace نشان داده میشه ، برای اینکه با backspace صفحه قبلی نشان داده نشه کد زیر رو باید روی event دکمه ی Logout بنوسین :

Response.Cache.SetNoStore();

با این کد آخرین صفحه شما cache نمیشه و وقتی backspace بزنه صفحه قبلی نمایش داده نمیشه

Mousavmousab
دوشنبه 13 مرداد 1393, 22:51 عصر
سلام

با java Script میشه جلوشو گرفت.



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebCaptcha.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script type="text/javascript">
window.location.hash = "no-back-button";
window.location.hash = "Again-No-back-button"; //again because google chrome don't insert first hash into history
window.onhashchange = function () { window.location.hash = "no-back-button"; }
</script>


</head>




این کد را در صفحه ی دوم قرار میدین ، یعنی بعد از اینکه از Page1 به Page2 رفتیم ، قرار است از Page2 به Page1 برگردیم ، بنابر این باید در Page2 قرار دهیم.

موفق باشی

f_g1348
سه شنبه 14 مرداد 1393, 12:32 عصر
سلام
آقای موسوی کدتون کار نمی کنه
( کد مربوطه رو در page load صفحه logout گذاشتم )
به نظر من در این بخش از جاوا اسکریپت استفاده نشه بهتره چون اگه کاربر در مرورگرش اسکریپت رو غیرفعال کنه دیگه کد نوشته شده کار نمی کنه