вы можете создать модуль HTTP для этого и зарегистрировать его в web.config на случай, если у вас нет доступа к вашему IIS.
Структура HttpModule должна выглядеть следующим образом;
namespace MyApp {
public class MyModule : IHttpModule {
public void Init(HttpApplication context) {
}
public void Dispose() {
}
}
}
после того, как вы реализуете свою логику в событии Init, вам необходимо зарегистрировать модуль в файле web.config, чтобы выполнять его при каждом запросе;
<configuration>
<system.web>
<httpModules>
<add name="MyModule" type="MyApp.MyModule, MyApp" />
</httpModules>
</system.web>
</configuration>
Если вы находитесь в интегрированном режиме IIS7 или 7.5, эта регистрация должна быть сделана внутри <system.webServer>
тега web.config