Можно ли добавить HttpModule в приложение ASP Classic? - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно сделать некоторые проверки, прежде чем страница будет обслуживаться.Если проверка в порядке, запрос должен следовать своему обычному потоку;если нет, он должен перенаправить на другую страницу, и на этой странице пользователь увидит что-то вроде соглашения, примет его, и после этого страницы должны загрузиться как обычно.

Итак, у меня есть приложение, в котором есть несколько страницна ASP Classic и другие в ASP.NET.Я пытаюсь добавить модуль HttpModule для обработки всех запросов на выполнение некоторой логики для перенаправления, в зависимости от результатов, на другую страницу.

Итак, в IIS приложение ASP находится сверхудругие приложения, и внутри этого приложения у меня есть другие приложения .NET.

Я создал HttpModule для его тестирования, зарегистрировал DLL и добавил соответствующую конфигурацию в файл web.config, который находится наУровень приложения ASP.

Это блок, который я добавил в свой файл web.config

<system.web>
    <customErrors mode="Off"></customErrors>
    <httpModules>
        <add name="TestHttpModule" type="TestHttpModule.TestHttpModule, TestHttpModule,Version=1.0.0.0, Culture=neutral, PublicKeyToken=d76c51db0a9391cf"/>
    </httpModules>
</system.web>

Модуль просто срабатывает при запросе страницы ASPX, но не при работе ASPзапрашивается страница.

Так возможно ли использовать настраиваемый HttpModule для ASP-страниц или это невозможно?

Если нет, знаете ли вы какой-либо другой подход для этого?

Приложение использует свой пул приложений в классическом режиме.

Конфигурация пула приложений

Заранее спасибо!

1 Ответ

0 голосов
/ 26 мая 2018

Приложения используют свой пул приложений в классическом режиме.

В классическом режиме конвейер ASP.NET активируется только для запросов ASP.NET.Поэтому модуль не будет запускаться, если путь заканчивается на «.asp».Но в режиме интегрированного конвейера он запускается для каждого отдельного запроса, включая изображения, файлы CSS и, да, классические файлы ASP.

Так что вам нужно будет переключить свою реализацию на использование интегрированного конвейераmode и добавьте ваш модуль в раздел конфигурации с именем system.webserver вместо system.web.Вам может потребоваться изменить ваш модуль, чтобы он игнорировал запросы на статические ресурсы (например, изображения и CSS) и просматривал только запросы, заканчивающиеся на .aspx и .asp (и, возможно, .ashx или любые другие используемые вами расширения).

...