Sitecore - 阻止访问页面,但仍在导航中显示

时间:2013-03-27 17:23:17

标签: authentication sitecore

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

Theres是一个覆盖HttpRequestProcessor here

的示例

答案 1 :(得分:3)

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

using (SecurityDisabler disabler = new SecurityDisabler())
{
  foreach (Item item in Sitecore.Context.Item.Children)
  {
    ... render the link ...
  }
}