【发布时间】:2014-05-05 11:01:36
【问题描述】:
我在 web.config 中设置了一个自定义管道来处理 403 和 404 消息传递和行为。代码长这样……
public class NotFoundProcessor : Sitecore.Pipelines.HttpRequest.HttpRequestProcessor
{
public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
{
//handle 404 & 403 processing of the requested item
}
}
它适用于任何请求的“页面”。
但是,媒体库项目似乎并未由该管道处理。我在http://sdn.sitecore.net/upload/sitecore6/handling_http_404_a4.pdf找到了这段文字
如果 IIS 使用 ASP.NET 处理请求,并且没有处理器中止请求 httpRequestBegin 管道,请求的 URL 不对应 到 Sitecore 媒体项目、上下文站点中的内容项目或 文件,然后 Sitecore 激活由值指定的 URL /configuration/sitecore/settings/setting 元素的属性 名称为 ItemNotFoundUrl 的 web.config。
这表明媒体项目的处理方式不同,但我找不到任何关于在管道中捕获媒体项目请求的参考。有没有办法做到这一点,或者其他解决方法允许我的自定义 403/404 处理媒体项目?
谢谢, 萨德
【问题讨论】:
-
所以我想您已经对某些媒体项目设置了安全性以拒绝访问/中断继承?
-
正确,我破坏了一些 PDF 的继承,因此匿名者没有读取权限。