Выполнить HtttModule только для URL без исключения - PullRequest
0 голосов
/ 31 марта 2010

У меня есть httpModule, который должен быть запущен до ActionMethod. Я не хочу, чтобы он выполнялся при поступлении запроса на изображение.

По некоторым причинам мне действительно нужен HttpModule и я не могу использовать ActionFilter

Как это сделать?

public class PostAuthenticateModule : IHttpModule
{

        public void Init(HttpApplication app)
        {
           app.PostAuthenticateRequest += new EventHandler(this.OnEnter);
        }

        private void OnEnter(object source, EventArgs eventArgs)
        {

        }

        private static void Initialize()
        {

        }
        public void Dispose()
        {
        }


}

web.config

<httpModules>
  <add type="PostAuthenticateModule.PostAuthenticateModule , PostAuthenticateModule" name="PostAuthenticateModule"/>
</httpModules>

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

Если вы используете IIS7, взгляните на Предварительные условия HttpModule .Звучит так, как вы хотите preCondition="managedHandler".

Например, это может выглядеть примерно так:

<system.webServer>
  <modules>
    <remove name="PostAuthenticateModule" />
    <add type="PostAuthenticateModule.PostAuthenticateModule , PostAuthenticateModule" name="PostAuthenticateModule" preCondition="managedHandler" />
  </modules>
</system.webServer>

HTHs,
Charles

0 голосов
/ 31 марта 2010

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

...