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

Session OnStart の動作は、HttpModule のリクエスト イベントの 1 つで、HttpContext.Current.Session.IsNewSessionが true に設定されているかどうかを確認することでエミュレートできます。

ただし、落とし穴が 1 つあります。Session オブジェクトに値が設定されていない場合、次のリクエストは IsNewSession として正の値を持ちます。したがって、IsNewSession を確認したら、Session オブジェクトに任意の値を設定する必要があります。

于 2012-01-19T20:56:07.640 に答える