Нужно перенаправить туда, откуда пришел пользователь по тайм-ауту сеанса - PullRequest
0 голосов
/ 20 марта 2012

У пользователя есть 2 способа попасть на этот сайт MVC3.

  1. Через экран входа в систему.
  2. Перенаправление с другого веб-сайта.

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

Откуда мне знать, откуда пришел пользователь?

К тому времени, когда я закончу сеанс, я даже не знаю, кем был пользователь.Хотя это не имеет значения, поскольку один и тот же пользователь может прийти из любого места.

1 Ответ

0 голосов
/ 20 марта 2012

Tricky. Вы можете использовать метод, аналогичный тому, что происходит, когда вы запрашиваете страницу, требующую аутентификации. В этом случае вы будете перенаправлены на действие входа в систему, но исходный запрос будет добавлен в строку запроса с помощью http://localhost/Account/Login?returnUrl={your original request here}, так что вы попадете на исходную запрашиваемую страницу после аутентификации.

В вашем случае вам придется сохранить в текущем сеансе входящий HTTP_REFERER на странице входа в систему, а затем добавить его в качестве «? ReturnUrl =» для каждой ссылки на страницу выхода из системы. Затем вам нужно будет добавить код в метод контроллера Logout для обработки перенаправления.

Обратите внимание, что этот метод не будет работать с глубокими ссылками на ограниченные страницы авторизации (как описано в первом абзаце), поскольку для этого потребуется два перенаправления. На этом этапе реферер не будет действительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...