2012-05-25 4 views
0

Я работаю с страницей входа (с использованием C#, visual studio 2008). В котором пользователь должен ввести Имя и Пароль.Завершение сеанса при нажатии Выход из системы

После нажатия на Логин он перенаправляется на главную страницу .. Теперь, если я нажму кнопку «Выход», он перенаправляется на страницу «Вход в систему». До сих пор все в порядке.

Мой вопрос, в данный момент (после того, как выйти из системы), если я нажимаю Back button он снова берет меня дома Page.But, вот я хочу, чтобы получить сообщение о том, что

You are already logged out. Please Login again 

он не должен позвольте мне перейти на главную страницу.

Как это сделать ...?

+0

какую технологию вы используете? jsp, asp, php? – MaVRoSCy

+0

Я делаю это в C# –

ответ

1

использовать этот код:

protected void logout_OnClick(object sender, EventArgs e) 
{ 
Session.Abandon(); 
Response.Redirect("login.aspx"); 
} 

protected void Page_Init(object sender, EventArgs e) 
{ 
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore(); 
} 
+0

работает. Но что происходит? (в коде) –

+0

@RanadheerReddy 'logout_OnClick' перенаправляет вас на страницу входа. Когда вы попытаетесь нажать кнопку «Назад» после выхода из системы, «Page_Init» будет работать для вас. – Jaguar

+0

ya.Thanks. ничего страшного. Я хочу знать о «трех строках» внутри метода Page_Init. –

1

В заголовке всех страниц вашего приложения проверьте состояние сеанса. Обычно я использовал переменную $_SESSION['password'], потому что если сеанс был действительным, всегда был пароль. Вот как выглядел код:

<% 
    if(!Session['password']) { 
     Response.Write("<script>location.replace('login.aspx?error=loggedOut')</script>") 
    } 
%> 
+0

Я делаю это в C# –

+0

Я не слишком знаком с C#, поэтому синтаксис может быть несовершенным. Это должно обрабатывать множество разных случаев, включая кнопку «Назад». –

1

Можете ли вы обработать событие onbeforeunload JS на странице входа и предотвратить отображение домашней страницы?

http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm

+0

Но когда я нажимаю кнопку «Назад» (после выхода из системы), она не вызывает функцию page_load на главной странице. –

+0

onbeforeunload - это событие Javascript, поэтому серверная страница page_load не будет задействована. Вы можете проверить, находится ли верхняя часть стека страниц истории на главной странице и не позволяет запустить кнопку «назад назад» по умолчанию, – rt2800