ASP.NET在global.asax的session_end事件中访问cookie值

时间:2009-09-17 11:39:34

标签: asp.net cookies global-asax

在ASP.NET中,如何在global.asax文件的Session_End事件中检索cookie值?  以下代码抛出异常“对象引用未设置为对象的实例”

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

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

Session工作进程触发了Session_End事件,而不是HTTP请求。因此,您的HttpContext将为null,您将无法设置客户端的cookie。

答案 1 :(得分:0)

不确定这是可能的。

在Session_End触发时,请求不再存在。

对不起,

答案 2 :(得分:0)

Session_End不在用户请求的上下文中运行,因此无法访问cookie(或任何其他请求变量)。

如果您将值放入Session,我认为您可以访问:

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

否则,您需要将其写入其他服务器端存储(如数据库)。

相关问题