сессия в asp.net - PullRequest
       4

сессия в asp.net

0 голосов
/ 24 марта 2011

Я создал сеанс на странице asp.net C #, я сохраняю уникальный идентификатор пользователя в сеансе, подобном этому,

Session["userid"] = clsUser.UniqueId;

, проверяю этот уникальный идентификатор на каждой странице и перенаправляем, если сеанс равен нулю.Но если я скопирую текущий URL пользователя в другую вкладку IE, он не будет перенаправлен на страницу входа.Вместо этого он поддерживает сеанс через вложенные вкладки браузера.

Как я могу перенаправить на страницу входа, если пользователь пытается скопировать URL-адрес в другой вложенной вкладке?

Ответы [ 4 ]

3 голосов
/ 24 марта 2011

Вы не можете сделать это, потому что каждая вкладка браузера использует один и тот же файл cookie и сеанс asp.net на основе файла cookie браузера

0 голосов
/ 19 декабря 2017

вы можете использовать Request.UrlReferrer при загрузке страницы, и он выдаст вам URL предыдущей страницы.

if (Request.UrlReferrer != null)

{

//Load page  data as normal you are doing.  

}

else

{

// redirect to login page because user have copied and pasted the URL in new tab 

//  and it do not have it previous page url in **Request.UrlReferrer** property.

}
0 голосов
/ 24 марта 2011

На вкладке оригинала есть право рефери. Скопированная вкладка не имеет реферера. Используйте Request.UrlReferrer. Имейте в виду, это не совсем безопасно, потому что опытный пользователь может манипулировать Реферером.

0 голосов
/ 24 марта 2011

Несколько вкладок находятся в одном сеансе - это нормальное поведение. Возможно, вы могли бы добавить второй отслеживающий HiddenField на страницу или использовать ViewState, чтобы убедиться, что обратный ответ происходит с той же страницы, с которой он пришел?

Я не думаю, что есть какой-то реальный способ предотвратить это.

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