4

有谁知道使用 HttpModule(不接触 Global.asax 文件)将事件添加到 Session 的 OnStart 和 OnEnd 事件的干净方法?

4

2 回答 2

4
public void Init(HttpApplication app)
{
   var ssm = app.Modules["Session"] as SessionStateModule;
   ssm.Start += Foo;
   ssm.End += Bar;
}
于 2009-02-11T22:57:33.887 回答
2

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

不过有个坑!如果没有在 Session 对象中设置值,则下一个请求将具有一个正值,即 IsNewSession。因此,一旦您积极检查 IsNewSession,您应该在 Session 对象中设置任何值。

于 2012-01-19T20:56:07.640 回答