ASP.NET Доступ к значению cookie в событии session_end файла global.asax - PullRequest
0 голосов
/ 17 сентября 2009

В ASP.NET, как я могу получить значение cookie в событии Session_End файла global.asax? Следующий код выдает исключение «Ссылка на объект не установлена ​​на экземпляр объекта»

    string cookyval = "";
    try
    {
        cookyval = Context.Request.Cookies["parentPageName"].Value;
    }
    catch (Exception ex)
    {
        cookyval = "";
    }

Любой совет?

Ответы [ 3 ]

3 голосов
/ 17 сентября 2009

Событие Session_End вызывается рабочим процессом IIS, а не HTTP-запросом. Поэтому ваш HttpContext будет нулевым, и вы не сможете установить cookie клиента.

0 голосов
/ 17 сентября 2009

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

Если вы поместите значение в сессию, я думаю, вы можете получить к нему доступ:

string cookyval = "";
try
{
    cookyval = (string)Session["parentPageName"];
}
catch (Exception ex)
{
    cookyval = "";
} 

В противном случае вам потребуется записать его в другое хранилище на стороне сервера (например, в базу данных).

0 голосов
/ 17 сентября 2009

Не уверен, что это возможно.

Запрос больше не активен в момент запуска Session_End.

К сожалению,

Dan

...