2015-09-18 4 views
0

Если я покину свою текущую страницу в веб-приложении asp.net, я хочу, чтобы все сеансы были уничтожены. Для этого я использую Session.Abandon() на Page_Unload Событие. Но если я сделаю Postback с обычной Button_Click, я не хочу запускать это событие.ASP.net dont fire unload on normal postback

Было бы здорово, если бы вы могли мне помочь.

Lingo

+0

введите здесь свой код. –

+0

Page_Unload - часть или жизненный цикл страницы в .Net. Он будет расти после каждой обратной передачи. Я думаю, что вы должны уничтожить сеанс перед перенаправлением на следующую страницу. –

+0

@ Emi1305 Итак, мне нужно уничтожить мои сеансы на каждом элементе меню? Есть ли какое-либо событие, которое запускается при каждом переадресации? – Lingo

ответ

1

Прежде всего, необходимо понять, как работает веб. Когда вы обращаетесь к stackoverflow.com, например, вы действительно видите прошлое. Страница, к которой вы обращались, уже уничтожена на веб-сервере.

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

Для делать как

The page unload description act like this it's after being rendered it's had nothing with the close of the page. 


"The Unload event is raised after the page has been fully rendered, sent to the client, and is ready to be discarded. 
At this point, page properties such as Response and Request are unloaded and cleanup is performed.' 

Reference (https://msdn.microsoft.com/en-us/library/ms178472.aspx)

Вы должны использовать JavaScript для выполнения этого поведения или попробовать новый WebSocket, который будет держать связь жив и сервер может проверить, если клиент потерял связь с сервером.