将 ImagerResizer 模块限制为仅一个特定 route/sub-directory 的推荐做法?
Recommended practice for restricting ImagerResizer module to just one specific route/sub-directory?
将 ImageResizer 限制为仅作用于指定子目录中的图像的推荐做法是什么(在我个人的情况下,通过 PostRewrite 只需要在特定目录中的图像上添加水印,但除了几个子目录,如果不需要的话,我真的不希望整个站点的图像甚至触及 InterceptModule)?
- 通过 MvcRoutingShim 以某种方式配置忽略路由 as referenced without an example in ImageResizer.net documentation。
<location ...>
在 Web.config 中:
<location path="some-path/some-directory" inheritInChildApplications="false">
<system.webServer>
<httpModules>
<add name="ImageResizingModule" type="ImageResizer.InterceptModule"/>
</httpModules>
</system.webServer>
</location>
Application.BeginRequest 过滤路径。
- 或者 PostRewrite 上的过滤器真的很晚 (Config.Current.Pipleline.PostRewrite)。
- 或者?
详情:
- ASP.NET MVC 5.2.3(集成)
- ImageResizer 4.x
- IIS 7(Windows 服务器 2008 R2)
处理 Config.Current.PostRewrite
并在事件参数(查询字符串)中设置 process=no
和 cache=no
。这将禁用 ImageResizer 与请求的交互。
如 Configuring ImageResizer to only work in certain directories 中所述,您不能使 HttpModules 位置特定。它们始终适用于整个应用程序。
默认情况下,ImageResizer 不会对图像执行任何操作,除非您通过查询字符串明确请求它。它确实(使用 authorizeAllImages="true")允许您通过 AuthorizeImage
控制访问,以及通过 Rewrite
和 PostRewrite
事件执行 URL 重写。
如果图像是从 VirtualPathProvider 提供的,它将通过将请求分配给 StaticFileHandler 来使其工作;但如果图像是物理文件,它什么都不做。
如果你想要真正的隔离,你总是可以设置一个子应用程序(子应用程序),它有一个单独的应用程序池,安装在一个子目录中。
将 ImageResizer 限制为仅作用于指定子目录中的图像的推荐做法是什么(在我个人的情况下,通过 PostRewrite 只需要在特定目录中的图像上添加水印,但除了几个子目录,如果不需要的话,我真的不希望整个站点的图像甚至触及 InterceptModule)?
- 通过 MvcRoutingShim 以某种方式配置忽略路由 as referenced without an example in ImageResizer.net documentation。
<location ...>
在 Web.config 中:<location path="some-path/some-directory" inheritInChildApplications="false"> <system.webServer> <httpModules> <add name="ImageResizingModule" type="ImageResizer.InterceptModule"/> </httpModules> </system.webServer> </location>
Application.BeginRequest 过滤路径。
- 或者 PostRewrite 上的过滤器真的很晚 (Config.Current.Pipleline.PostRewrite)。
- 或者?
详情:
- ASP.NET MVC 5.2.3(集成)
- ImageResizer 4.x
- IIS 7(Windows 服务器 2008 R2)
处理 Config.Current.PostRewrite
并在事件参数(查询字符串)中设置 process=no
和 cache=no
。这将禁用 ImageResizer 与请求的交互。
如 Configuring ImageResizer to only work in certain directories 中所述,您不能使 HttpModules 位置特定。它们始终适用于整个应用程序。
默认情况下,ImageResizer 不会对图像执行任何操作,除非您通过查询字符串明确请求它。它确实(使用 authorizeAllImages="true")允许您通过 AuthorizeImage
控制访问,以及通过 Rewrite
和 PostRewrite
事件执行 URL 重写。
如果图像是从 VirtualPathProvider 提供的,它将通过将请求分配给 StaticFileHandler 来使其工作;但如果图像是物理文件,它什么都不做。
如果你想要真正的隔离,你总是可以设置一个子应用程序(子应用程序),它有一个单独的应用程序池,安装在一个子目录中。