0

根据数据库中的一些规则,我的 ASP.NET MVC 3 项目中有一些图像,只有某些用户可以查看。

在我的 Global.asax 中,在 Application_BeginRequest () 方法中添加了规则,如下图所示:http: //i.imgur.com/9a2rEKF.png

该代码正在运行,如果用户没有权限,我会显示来自 placehold.it 的通用图像。但是,使用映射 sql 查询的库,我网站上的每个请求都会触发几次 AuthorizeImage 事件(超过 50 次),这使得图像显示缓慢并影响整个系统。

我的问题是:我把 AuthorizeImage 事件放在了错误的地方?有没有办法解决这个问题,让每个图像只触发一个 AuthorizeImage 事件?

4

1 回答 1

0

您应该在 Application_Start 期间注册事件处理程序,因此它们只添加一次。

在 End_Request 期间注册事件处理程序意味着每个请求都会导致添加另一个重复的处理程序。

AuthorizeImage 没有被解雇 50 次;您的处理程序的 50 个副本正在向其注册。

于 2013-10-27T01:30:43.000 回答