2014-09-25 3 views
1

Много и много примеров того, как устанавливать и перенаправлять, когда сеанс заканчивается. Но ничего такого, что я мог бы найти для этой ситуации.Получить текущую страницу пользователя при отключении сеанса

Типичная ситуация, когда тайм-аут контролирует тайм-аут сеанса и отображает окно, предупреждающее пользователя об этом, когда осталось 1 минута. Когда сеанс истекает, пользователь перенаправляется на страницу (sessionexpired.aspx), которая очищает сеанс и отображает информацию, информирующую пользователя о необходимости повторного входа в систему.

Хотелось бы зарегистрировать страницу, на которой был пользователь, когда сеанс действительно был установлен по времени и сделать это в коде за страницу sessionexpired.aspx.

Любая помощь была бы очень желанной!

+0

Вы не можете использовать Cookies ..? – MethodMan

+0

Прежде чем перенаправлять страницу с истекшим сроком действия, добавьте параметр ReturnUrl в строку запроса с URL-адресом текущей страницы (возможно, с помощью document.URL). Вам нужно будет установить urlencode, но тогда все, что вам нужно сделать, это проверить Reqeust.QueryString ["ReturnURL"]. Должен работать так же, как возврат с перенаправления на логин. –

ответ

1

Попробуйте найти Referer из текущего объекта Request. Это, как правило, найти с помощью этого:

Request.UrlReferrer

Я надеюсь, что это помогает.

1

Вы можете использовать один из этих примеров коды, чтобы получить текущую страницу пользователя находится на:

// Returns something like "http://www.example.com/myUrl/MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsoluteUri; 

// Returns something like "/myUrl/MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsolutePath; 

// Returns something like "MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsolutePath.Substring(url.LastIndexOf('/') + 1); 

Так везде, где ваш код для входа вам, когда истекает время сеанса (возможно, в вашей главной странице), просто добавьте одну из этих строк.

После этого вы можете добавить его в качестве параметра строки запроса на свою страницу входа в систему или сохранить его в базе данных.

+0

Параметр Querystring получает мой голос. Кажется чистым, а затем отправляет его в БД. – Jagd

+0

@Jagd - Я согласен. Я не знал, нужно ли ему это знать, чтобы он мог вернуть пользователя на страницу, на которой они были, или если он нужен для какой-то статистической маркетинговой штуки. Например, «исследование показало, что 70% наших пользователей были на странице XYZ, когда они автоматически выходили из системы». Смотрите, что я имею в виду? – Icemanind

+0

Отличный ответ icemanind, но предыдущий ответ позволяет мне получить URL-адрес на странице SessionExpired независимо от того, откуда. Спасибо за ответ, я буду помнить об этом в будущем. – user1266896

Смежные вопросы