You can implement much of the functionality of a Http modules in the application's Global.asax file, which enables you to respond to application events. However, modules have an advantage over the Global.asax file because they are encapsulated and can be created one time and used in many different applications. By adding them to the global assembly cache and registering them in the Machine.config file, you can reuse them across applications.
The advantage of using the Global.asax file is that you can handle other registered events such as Session_Start and Session_End. In addition, the Global.asax file enables you to instantiate global objects that are available throughout the application.
You should use a module whenever you must create code that depends on application events, and when the following conditions are true:
- You want to re-use the module in other applications.
- You want to avoid putting complex code in the Global.asax file.
- The module applies to all requests in the pipeline (IIS 7.0 Integrated mode only).