如何在Sitecore网站上存储访问的最后一页,然后在用户返回时显示该页面

时间:2013-02-27 10:24:32

标签: asp.net-mvc sitecore sitecore6

Sitecore相当新,我正在构建一个没有身份验证的Sitecore Web应用程序(匿名)。这是一个大型项目,有许多分层的顶部,侧面菜单。

当用户重新访问网站时,我需要加载上次访问的页面,并突出显示菜单项。有人可以帮助我是否有任何提供此功能的Sitecore API,如果不是,那么理想的解决方案是什么,即在客户端cookie上存储最后访问过的页面?

3 个答案:

答案 0 :(得分:5)

我可以看到的一个选项是将最后访问过的页面存储在客户端cookie上,就像你说的那样,然后构建一个自定义处理器并将其放入

<httpRequestBegin>
web.config中的

管道。

自定义处理器需要从HttpRequestProcessor类继承,并且您需要覆盖Process方法。

在这种情况下,我建议使用这样的自定义处理器:

<processor type="Your.NameSpace.ClassName, Your.Assembly" />
<processor type="Sitecore.Pipelines.HttpRequest.ItemResolver, Sitecore.Kernel" />

并具有以下内容:

namespace Your.Namespace
{
    public class ClassName : HttpRequestProcessor
    {
        public override void Process(HttpRequestArgs args)
        {
            // Get cookie:
            var cookievalue = WebUtil.GetCookieValue("cookiename");
            WebUtil.Redirect(cookievalue);
        }
    }
}

当然,这建议您将最后访问过的网页的网址存储在Cookie中。您当然也可以将最后访问过的项目的ID存储在cookie中,然后从那里获取它的路径。

答案 1 :(得分:1)

我刚刚看到这篇文章,正如Holder所提到的,如果你启用并使用它,应该可以从DMS获取信息:

Get last visited pages from a Sitecore DMS (OMS) Profile

答案 2 :(得分:0)

据我所知,默认API中没有任何内容可以执行此操作。

Sitecore OMS中可能存在某些内容,但我对OMS知之甚少。

我认为cookie可能是最简单,最简单的方法。