переменные сеанса asp.net на Session_End - PullRequest
26 голосов
/ 08 января 2010

Мне нужен доступ к переменным Session для события Session_End в global.asax.cs, но HttpContext.Current имеет значение null, поэтому ни одна из переменных сеанса не доступна.

a) Могу ли я получить доступ к пользовательскому сеансу как-то иначе, или

b) Есть ли какие-либо другие события перед Session_End, я могу получить доступ к переменным сеанса пользователя?

Ответы [ 3 ]

46 голосов
/ 08 января 2010

HttpContext.Current недоступно внутри Session_End, но вы можете напрямую получить доступ к экземпляру сеанса с помощью this.Session.

0 голосов
/ 08 января 2010

Что вы пытаетесь сделать?

Нет события, предшествующего Session_End, которое вы могли бы использовать для доступа к объекту Session.

Если вы сохранили метку времени действия, относящуюся к последнему времени использования объекта Session, а затем проверили это, вы можете получить некоторое представление о том, когда он должен закончиться.
(На основании ваших настроек / конфигурации IIS). Однако акт доступа к нему продлит жизнь объекту Session.

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

Но на самом деле я бы не советовал это. Что вы пытаетесь сделать, что вам это нужно?

0 голосов
/ 08 января 2010

Если вы не используете Session_End для конкретной цели выполнения действий по истечении времени сеанса, полагаться на Session_End не очень хорошая идея.

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

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