2

在 Sitecore 中,我拒绝匿名用户访问特定页面。

这可以正常工作,但这也意味着该页面不会出现在导航菜单和站点地图(均为 XSLT)中。

我希望用户能够看到该链接,但是当他们点击它时被重定向到注册/登录页面。

4

2 回答 2

3

您需要允许匿名用户查看该页面,以便它在菜单和站点地图中可见。

您可以做的是覆盖Sitecore.Pipelines.HttpRequest.HttpRequestProcessor以检查页面是否需要登录(例如,通过向模板添加 RequiresLogin True/False),然后检查用户是否已登录(如果未重定向到)您的登录页面。

这里有一个覆盖 HttpRequestProcessor 的示例

于 2013-03-27T18:33:15.510 回答
3

您可以将呈现逻辑包装在 SecurityDisabler 的菜单中,这样即使用户“看不到”它们,它也会呈现所有项目链接。

using (SecurityDisabler disabler = new SecurityDisabler())
{
  foreach (Item item in Sitecore.Context.Item.Children)
  {
    ... render the link ...
  }
}
于 2013-03-27T18:38:56.130 回答