ASP.NET MVC PostAuthorizeRequest (и другие события) не срабатывает - PullRequest
5 голосов
/ 12 мая 2011

Я работаю над проектом mvcForum (на codeplex) и хочу удалить как можно больше кода из файла global.asax - в основном, чтобы упростить интеграцию mvcForum в существующее приложение ASP.NET MVC без особых изменений код.

Мне нужно подключиться к событиям приложения, чтобы иметь возможность установить правильный CultureInfo (в зависимости от выбора пользователя и т. Д.) И другие вещи.

Это не проблема с этим в файле global.asax:

protected void Application_PostAuthorizeRequest() {
       // Some code here!
}

Но когда я пытаюсь переместить код в другое место, событие никогда не происходит. Что я делаю, это:

public MVCForumBootstrapper(HttpApplication app) {
    app.PostAuthorizeRequest += new EventHandler(app_PostAuthorizeRequest);
}

И это в global.asax

    protected void Application_Start() {
      var strapper = new MVCForumBootstrapper(this);
    }

Я ожидал, что это будет работать точно так же?

Что я делаю не так / я пропустил?

Спасибо, Стин

1 Ответ

6 голосов
/ 12 мая 2011

Вы должны сделать это в методе Init Global.asax. В Application_Start слишком поздно перехватывать события:

public override void Init()
{
    base.Init();
    var strapper = new MVCForumBootstrapper(this);
}
...