Как получить данные сеанса, не имея HttpContext.Current, по SessionID - PullRequest
4 голосов
/ 05 мая 2010

Я ищу способ для чтения и записи данных сеанса , но без HttpContext. Текущий .

Почему я выиграл это сделать? потому что я хочу сделать некоторые действия с сеансом пользователя после того, как страница была закрыта и выгружена.

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

Так есть ли способ прочитать данные сеанса, зная только идентификатор сеанса.

Я храню свою сессию на сервере SQL и вижу их. его там на столе ASPStateTempSessions:)

Как я могу читать их "в автономном режиме" и манипулировать ими?

Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

Я могу немного опоздать, но ... Сегодня я узнал о: System.Web.HttpRuntime.Cache

Я знаю, что это не то же самое, что сессия, но я думаю, что это гораздо лучшая альтернатива, чем БД. Привет.

0 голосов
/ 05 мая 2010

До сих пор не совсем понятно, почему вы можете захотеть сделать это , но вам может не понадобиться делать это в Session_End (). В этот момент вам может быть слишком поздно работать с данными сеанса (я уже читал несколько статей об этом ранее). Лучшим решением может быть попытка поработать с данными сеанса , когда ваше приложение действительно имеет контекст .

Например:

Ничто не мешает вашему приложению создавать асинхронный запрос в новом потоке в фоновом режиме (или даже в другом приложении, например, в Windows Service), когда конкретная переменная сеанса, которую вы хотите, обновлена ​​или установлена , Таким образом, ваше приложение сможет получить доступ к текущему HttpContext, а также ко всем данным сеанса.

Не уверен, поможет ли это, но оно того стоило;)

Ричард.

...