有没有人知道使用HttpModule(不触及Global.asax文件)向Session的OnStart和OnEnd事件添加事件的简洁方法?
答案 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对象中设置任何值。