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

Authentication Sitecore-阻止对页面的访问,但仍在导航中显示该页面,authentication,sitecore,Authentication,Sitecore,在Sitecore中,我已拒绝匿名用户访问特定页面 这可以正常工作,但也意味着页面不会出现在导航菜单和站点地图(都是XSLT)中 我希望用户能够看到该链接,但当他们单击该链接时,会被重定向到注册/登录页面。您需要允许匿名用户查看该页面,以便在菜单和站点地图中看到该页面 不过,您可以覆盖Sitecore.Pipelines.HttpRequest.HttpRequestProcessor来检查页面是否需要登录(例如,通过向模板添加RequiresLogin True/False),然后检查用户是否

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

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


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

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

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


这里有一个覆盖HttpRequestProcessor的示例,您可以将呈现逻辑包装在SecurityDisabler的菜单中,这样即使用户“看不见”所有项目链接,它也会呈现所有项目链接

使用(SecurityDisabler disabler=new SecurityDisabler())
{
foreach(Sitecore.Context.Item.Children中的项)
{
…呈现链接。。。
}
}

这不起作用,因为提供的代码是针对ascx而不是xslt的。但是,您可以使用tagThis,它工作得很好,并且为可能觉得用户管理器有点吓人的用户提供了一种更简单的限制访问页面的方法。谢谢