2013-10-26 7 views
0

У меня есть некоторые изображения в моем проекте ASP.NET MVC 3, которые могут просматривать только определенные пользователи на основе некоторых правил из базы данных.ImageResizer AuthorizeImage срабатывает несколько раз

В моей Global.asax, в методе Application_BeginRequest() Я добавил правила, так как на следующем рисунке: http://i.imgur.com/9a2rEKF.png

код работает, если пользователь не имеет прав, я показываю общий образ из placehold.it. Однако с помощью libray, которая отображает sql-запросы, каждый запрос на моем сайте несколько раз вызывает событие AuthorizeImage (более 50), что делает отображение изображения медленным и влияет на систему в целом.

Мой вопрос: я помещаю событие AuthorizeImage в неправильном месте? Есть ли способ обойти это, создавая для каждого изображения только одно событие AuthorizeImage?

ответ

0

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

Регистрация вашего обработчика событий во время End_Request означает, что каждый запрос приведет к добавлению другого дублирующего обработчика.

AuthorizeImage не срабатывает 50 раз; 50 экземпляров вашего обработчика регистрируются вместе с ним.

+0

Спасибо человеку. Лучший способ - просто переместить мой код в Application_Start, не так ли? –

Смежные вопросы