Sitecore 非常新,我正在构建一个没有身份验证(匿名)的 Sitecore Web 应用程序。这是一个大型项目,有很多分层的顶部、侧边菜单。
当用户重新访问该网站时,我需要加载上次访问的页面并突出显示菜单项。有人可以帮助我是否有任何提供此功能的 Sitecore API,如果没有,理想的解决方案是什么,即将上次访问的页面存储在客户端 cookie 上?
Sitecore 非常新,我正在构建一个没有身份验证(匿名)的 Sitecore Web 应用程序。这是一个大型项目,有很多分层的顶部、侧边菜单。
当用户重新访问该网站时,我需要加载上次访问的页面并突出显示菜单项。有人可以帮助我是否有任何提供此功能的 Sitecore API,如果没有,理想的解决方案是什么,即将上次访问的页面存储在客户端 cookie 上?
我可以看到的一个选项是像您说的那样将上次访问的页面存储在客户端 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);
}
}
}
当然,这建议您将上次访问页面的 URL 存储在 cookie 中。当然,您也可以将上次访问项目的 ID 存储在 cookie 中,并从那里获取它的路径。
我刚刚看到这篇文章,正如 Holder 提到的,如果您启用并使用它,应该可以从 DMS 获取信息:
据我所知,默认 API 中没有任何东西可以做到这一点。
Sitecore OMS中可能有一些东西,但我对OMS了解不多。
我认为 cookie 可能是最简单、最简单的方法。