По сути, я хочу быть в состоянии отловить, когда пользователь разрешает свое время ожидания сеанса, а затем нажимает на что-то, что в конечном итоге вызывает асинхронную обратную передачу. Я понял, что если я помещу этот код в мой Session_Start (в Global.asax), то я могу отловить обратную передачу, которая произошла во время тайм-аута сеанса:
With HttpContext.Current
If TypeOf .Handler Is Page Then
Dim page As Page = CType(.Handler, Page)
If page IsNot Nothing AndAlso page.IsPostBack Then
'Session timeout
End If
End If
End With
Это отлично работает. Мой вопрос заключается в том, что я хотел бы иметь возможность вставить некоторый JavaScript в Response, а затем вызвать Response.End (), чтобы остальная часть приложения не завершила выполнение. Проблема в том, что когда я пытаюсь Response.Write("<script ... ")
, а затем Response.End()
, тогда javascript не записывается в поток ответов. Я уверен, что в приложении есть другие места, где я могу безопасно написать Javascript в Response, но я не могу позволить остальной части приложения работать, так как при попытке доступа к объектам сеанса произойдет ошибка.
Подводя итог: мне нужно вставить javascript в ответ в событии Session_Start в Global.asax
Примечание: вы можете задаться вопросом, почему я не делаю этого в Session_End ... мы не используем сессии InProc, и поэтому Session_End не вызывается ... но это не относится к делу ... просто хотел поясните, почему я делаю это в Session_Start.