ASP.NET 访问 global.asax 的 session_end 事件中的 cookie 值
在 ASP.NET 中,如何检索 global.asax 文件的 Session_End 事件中的 cookie 值? 以下代码抛出异常“对象引用未设置到对象的实例”
string cookyval = "";
try
{
cookyval = Context.Request.Cookies["parentPageName"].Value;
}
catch (Exception ex)
{
cookyval = "";
}
有什么建议吗?
In ASP.NET , How can i retrieve a cookie value in the Session_End event of global.asax file ?
The following code is throwing an exception "Object reference not set to an instance of an object"
string cookyval = "";
try
{
cookyval = Context.Request.Cookies["parentPageName"].Value;
}
catch (Exception ex)
{
cookyval = "";
}
Any advice ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Session_End 事件由 IIS 工作进程触发,而不是由 HTTP 请求触发。因此,您的 HttpContext 将为 null,并且您将无法设置客户端的 cookie。
The Session_End event is fired by the IIS worker process, not an HTTP request. Therefore your HttpContext will be null and you won't be able to set a client's cookie.
不确定这是否可能。
在 Session_End 触发时,请求不再有效。
对不起,
丹
Not sure this is possible.
The request is no longer alive at the point the Session_End fires.
Sorry,
Dan
Session_End 不在用户请求的上下文中运行,因此无法访问 cookie(或任何其他请求变量)。
如果您将值放入会话中,我认为您可以访问该值:
否则,您需要将其写入其他服务器端存储(例如数据库)。
Session_End isn't run in the context of a user request, so there's no access to cookies (or any other request variables).
If you put the value into Session, I think you can access that:
Otherwise, you'd need to write it to some other server side storage (like a database).