Могу ли я ограничить область действия ASP.net HttpHandler? - PullRequest
1 голос
/ 26 июля 2010

У меня есть приложение, которое зависит от общего HttpHandler, который я создал, и оно отлично работает. Проблема заключается в том, что в той же папке в IIS есть много других приложений, и этим другим приложениям не нужно использовать и они не знают (не должны знать) об этом обработчике. Однако Web.Config, в котором я его регистрирую, в конечном итоге применяется ко всем папкам на одном уровне и ко всем подпапкам, и это то, чего я хочу избежать.

Изменение структуры приложений внутри IIS, к сожалению, невозможно.

Я думал об использовании тега в Web.config, но у меня сложилось впечатление, что он изменяет только права на доступ, а не видимость.

Какие-нибудь предложения о том, как это можно преодолеть?

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Вы можете применить пользовательский фильтр к вашему HttpHandler, проверив файл, который будет проходить через ваш фильтр, и оставив только тот, который вам нужен.

Вы можете получить имя файла, который будет проходитьВаш HttpHandler от

HttpContext.Current.Request.Path

В этом имени файла вы можете проверить что угодно, каталог, файл, что угодно.

Надеюсь, что это поможет.

0 голосов
/ 27 июля 2010

HttpHandlers настраиваются на уровне приложений. Эти подпапки вы говорите о действительно отдельных приложениях? Если нет, то с этим мало что можно поделать ... Предложение Аристоса может быть жизнеспособным. Если они действительно являются приложениями, вам просто нужно специально удалить обработчик из этих приложений.

http://msdn.microsoft.com/en-us/library/e0dzxdza%28VS.71%29.aspx

0 голосов
/ 26 июля 2010

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

http://msdn.microsoft.com/en-us/library/ms178685.aspx

http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspx

...