Выбор HttpHandler из пользовательского HttpModule

У меня есть HttpModule, и я хотел бы выбрать HttpHandler для текущего запроса, это возможно? Также web.config Это не вариант, потому что условие не основано на пути или расширения. Мои навыки гугления подвели меня, независимо от того, какие ключевые слова я использую, все результаты - "IHttpHandler vs IHttpModule".

3 ответов


Потратив еще пару часов, мне наконец удалось найти решение:

HttpContext.RemapHandler

Это позволяет мне условно переназначить запрос другому обработчику в моем модуле перезаписи Url.


мне кажется, что вы ищете IHttpHandlerFactory. Это может быть зарегистрировано в вашем web.config файл (я не уверен, можно ли зарегистрировать это через IHttpModule. См.: Пошаговое Руководство: создание и регистрация http Handler Factories

недавно я наткнулся на интересный пост, который охватывал динамическая Регистрация IHttpModule. Я знаю, что это противоположность тому, что вы ищете, но вы можете найти это интересным.


вы можете создать HttpModule, который будет выполняться при каждом запросе от клиента (браузера).

см. здесь, как он использовал cookies для отправки timezoneOFfset с помощью HttpModule.

http://weblogs.asp.net/cprieto/archive/2010/01/03/handling-timezone-information-in-asp-net.aspx

загрузите код и посмотрите, как все работает.

определенно вам нужны некоторые изменения конфигурации.