【问题标题】:Preserve Session Variables Across HttpHandlers跨 HttpHandler 保留会话变量
【发布时间】:2011-04-01 09:19:28
【问题描述】:

我有一个 ASP.NET 应用程序,其中包含 5 个实现 IRequiresSessionState 或 IReadOnlySessionState 的 .ashx HTTPHandler。

在调用第一个处理程序时,我创建一个变量并将其存储在会话中。

当我调用下一个 HttpHandler 时,该变量在会话对象中不可用。

我正在使用 context.Session。

我有一个 global.asax,我在其中检索 sessionId。

有没有办法跨 HttpHandler 保存会话变量,或者每个 Handler 都有自己的会话?

【问题讨论】:

    标签: asp.net session httphandler


    【解决方案1】:

    HeartAttack 在这里对此进行了很好的讨论:

    http://weblogs.asp.net/ashicmahtab/archive/2008/09/18/how-to-use-session-values-in-an-httphandler.aspx

    基本上,您需要执行以下操作:

    public class MyHandler:IHttpHandler,IRequiresSessionState
    

    HTH。

    这应该跨处理程序维护会话状态。也就是说,当您登录时,您对进入该域的所有请求只有一个会话。我建议您验证您是否确实已登录。缓存当然会起作用,因为这对所有会话都是通用的,但在服务器上要昂贵得多,因为它不容易消失。

    【讨论】:

    • 我已经继承了 IRequiresSessionState。我想要的是跨 HTTPHandler 保留 Session 值,因为对 HTTPHandler 的每个请求都会获得一个新会话。基本上我已经决定使用应用程序缓存了。
    猜你喜欢
    • 2021-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    相关资源
    最近更新 更多