Исключите определенные страницы из использования HTTPModule

Вы не понимаете, что такое «неопределенное поведение», и я не могу винить вас, учитывая, что это часто плохо объясняется. Вот как стандарт определяет неопределенное поведение, раздел 3.27 в intro.defs:

поведение, для которого этот документ не предъявляет никаких требований

Вот и все. Ни меньше, ни больше. Стандарт можно представить как ряд ограничений, которым должны следовать поставщики компиляторов при создании допустимых программ. Когда есть неопределенное поведение, все ставки выключены.

Некоторые люди говорят, что неопределенное поведение может привести к тому, что ваша программа порождает драконов или переформатирует ваш жесткий диск, но я считаю, что это немного бессмысленно. Более реалистично, что-то вроде выхода за пределы границ массива может привести к ошибке сегмента (из-за запуска ошибки страницы). Иногда неопределенное поведение позволяет компиляторам выполнять оптимизацию, которая может неожиданно изменить поведение вашей программы, так как нет ничего, что компилятор не может .

Дело в том, что компиляторы не «генерируют неопределенное поведение». Неопределенное поведение существует в вашей программы.

Я имел в виду, что если у GCC есть замечательная функция (в частности, математика для недействительных указателей), которая в настоящее время не названа, мы можем дать ей имя, а затем потребовать его и в будущих версиях.

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

15
задан LittleBoyLost 16 September 2008 в 10:15
поделиться

2 ответа

Вы могли использовать HTTPHandler вместо HTTPModule. Обработчики позволяют Вам указать путь, когда Вы объявляете их в сети. Конфигурация.

<add verb="*" path="/validate/*.aspx" type="Handler,Assembly"/>

, Если необходимо использовать HTTPModule, Вы могли бы просто проверить путь запроса и если это - чтобы быть исключенным, обойдите проверку.

11
ответ дан 1 December 2019 в 02:10
поделиться

HttpModules подключают к самому конвейеру обработки запросов ASP.NET. Сам httpModule должен заботиться о выяснении, которое запрашивает, чтобы это хотело действовать на и который запрашивает, чтобы это хотело проигнорировать.

Это может, например, быть достигнуто путем рассмотрения контекста. Запрос. Свойство Path.

14
ответ дан 1 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: