使用HttpModules将事件附加到Session OnStart和OnEnd

时间:2009-02-11 22:34:42

标签: asp.net session events httpmodule

有没有人知道使用HttpModule(不触及Global.asax文件)向Session的OnStart和OnEnd事件添加事件的简洁方法?

2 个答案:

答案 0 :(得分:4)

public void Init(HttpApplication app)
{
   var ssm = app.Modules["Session"] as SessionStateModule;
   ssm.Start += Foo;
   ssm.End += Bar;
}

答案 1 :(得分:2)

会话OnStart行为可以通过 - 在您的一个HttpModule请求事件中进行模拟 - 检查 HttpContext.Current.Session.IsNewSession 是否设置为true。

然而,有一个陷阱!如果未在Session对象中设置值,则下一个请求将具有正值IsNewSession。因此,一旦您正确地检查了IsNewSession,您应该在Session对象中设置任何值。