2013-10-26 101 views
0

我在ASP.NET MVC 3項目中有一些圖像,只有某些用戶可以根據數據庫中的某些規則進行查看。ImageResizer AuthorizeImage事件觸發多次

在我的Global.asax,在方法的Application_BeginRequest()我添加的規則,如下面的圖像:http://i.imgur.com/9a2rEKF.png

的代碼工作,如果用戶沒有權限,我表示從一般圖像placehold.it。但是,使用映射SQL查詢的libray,我的網站上的每個請求都會多次(超過50次)觸發AuthorizeImage事件,這會使圖像顯示速度變慢並影響整個系統。

我的問題是:我把AuthorizeImage事件放在錯誤的地方?有沒有什麼辦法解決這個問題,讓每個圖像只觸發一個AuthorizeImage事件?

回答

0

您應該在Application_Start期間註冊事件處理程序,因此它們只添加一次。

在End_Request期間註冊您的事件處理程序意味着每個請求都會導致添加另一個重複處理程序。

AuthorizeImage未被解僱50次;你的處理程序的50份副本正在註冊。

+0

謝謝你。最好的方法是將我的代碼移動到Application_Start,對吧? –