HTTPModule中不能直接写Session_Start,这是为什么?
有时看书能看到Session_Start不能在HTTPModule中使用,不清楚为什么。
今天找到一个答案:http://forums.asp.net/t/1156462.aspx
Session_Start will actually be mapped to the Start event of the System.Web.SessionState.SessionStateModule class. That is already an HttpModule. You can access the modules in the pipeline through the Modules property of the HttpApplication. If you cast the session module to a System.Web.SessionState.SessionStateModule, you should have access to the Start and End events. I have actually not tried this, so let me know if it works.
Thank you! This explination really helped.
Here is the code to call in your HTTPModule's Init that assumes you have a method named Session_Start:
1 IHttpModule module = context.Modules["Session"];
2 if (module.GetType() == typeof(SessionStateModule))
3 {
4 SessionStateModule stateModule = (SessionStateModule) module;
5 stateModule.Start += (Session_Start);
6 }
http://four-corner.appspot.com/