![]() |
1
84
在街上发现的 ASP.NET forums :
|
![]() |
2
39
HttpContext.Current.Session pipeline events 在初始化会话状态之前发生的。。。 在注释中澄清后编辑:在处理 BeginRequest event ,会话对象实际上仍然是null/Nothing,因为它还没有被ASP.NET运行时初始化。要解决此问题,请将处理代码移动到发生在 PostAcquireRequestState PreRequestHandlerExecute 对于我自己来说,因为所有的低级工作都在这个阶段完成了,但是您仍然会抢占任何正常的处理。 |
![]() |
3
15
访问
PreRequestHandlerExecute :“发生在ASP.NET开始执行事件处理程序之前(例如,页面或XML Web服务)。”这意味着在服务“aspx”页面之前,此事件将被执行。“会话状态”可用,因此您可以将自己击倒。 例子:
|
![]() |
4
12
如果要在托管应用程序中编写一个普通的、基本的HttpModule,并希望通过页面或处理程序将其应用于asp.net请求,则只需确保在创建会话后在生命周期中使用事件即可。PreRequestHandlerExecute而不是Begin_请求通常是我要去的地方。mdb在他的编辑中有它的权利。 最初列出的回答问题的较长代码片段有效,但比初始问题复杂且范围更广。它将处理内容来自ASP.net处理程序不可用的情况,您可以在该处理程序中实现IRequiresessionState接口,从而触发会话机制使其可用。(就像磁盘上的静态gif文件)。它基本上是设置一个虚拟处理程序,然后实现该接口以使会话可用。 如果您只需要代码的会话,只需选择要在模块中处理的正确事件。 |
![]() |
5
0
尝试:在MyHttpModule类中声明:
因此,在同一类中的另一个方法(事件)中:
|
![]() |
6
0
自从.NET4.0以来,IHttpHandler的这种攻击就没有必要加载会话状态(就像大多数上浮答案中的一样)。有一种方法
HttpContext.SetSessionStateBehavior
如果所有请求集上都需要会话
web.config声明-仅为托管请求调用HttpModule:
IHTTP模块实现:
|
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |