0

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

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

有什么建议吗?

4

3 回答 3

3

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

于 2009-09-17T11:48:22.133 回答
0

不确定这是可能的。

在 Session_End 触发时,请求不再有效。

对不起,

于 2009-09-17T11:41:09.697 回答
0

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

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

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

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

于 2009-09-17T11:49:02.173 回答