Я использую директиву angular для извлечения html-файла с моего сервера в классическом режиме IIS7 (требуется классический из-за единого входа). Чтобы удовлетворить CORS, мне нужно прочитать ORGIN из запроса и добавить заголовок к ответу html-файла. Этот бит не имеет большого значения. Моя проблема заключается в том, чтобы подключить мой код, чтобы сделать это для статического HTML-файла.
Таким образом, в классическом режиме мои обработчики/модули определены в system.web, а не в system.webSever. Поэтому я не могу использовать флаг runAllManagedModulesForAllRequests="true", который не является частью схемы для system.web.
В system.web у меня есть:
<httpHandlers>
<!--<add path="*.html" verb="GET,HEAD" type="System.Web.StaticFileHandler" />-->
<add path="*.html" verb="GET,HEAD" type="My.Namespace.CrossOriginHandler, My.DLL.Name" />
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
<httpModules>
<add name="CrossOriginModule" type="My.Namespace.CrossOriginModule, My.Dll.name" />
</httpModules>
Это отлично работает для страниц MVC или вызовов webapi. Он не выполняется для моего статического файла HTML.
Я начинаю опасаться, что мне придется писать собственный фильтр ISAPI. Есть ли другой способ подключить мой код? Конфигурация, которую мне не хватает, или перехват между фильтром ISAPI и HttpModule?