我试图锁定CM(主站点)网站。用户必须登录才能查看该站点。
以下配置会添加到sitecore.config中。不幸的是,下面的实现仅适用于主页(例如/)。 当一个匿名用户进入/ hello-world时,他们会看到一个" white"没有任何内容的页面。它不会将它们引导到登录页面。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
<sitecore>
<sites>
<site name="website"
set:requireLogin="true"
set:domain="sitecore"
set:loginPage="/sitecore/login"
set:targetHostName="master.website.com"
set:scheme="http" />
</sites>
</sitecore>
</configuration>
访问主页带我去 login page 但是,如果我手动输入内部页面URL,我会得到以下内容: white page
答案 0 :(得分:0)
要使其正常工作,只应为“网站”配置节点更改2个设置 - requireLogin
和loginPage
。所以你一定要正确设置它。
我在过去遇到了类似的“空白页面”问题,它与ItemNotFoundUrl
设置的一些配置错误有关。如果“hello-world”页面不存在,也可能是你的情况。
答案 1 :(得分:0)
请你试试这个:
<site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/hello-world" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" requireLogin="true" loginPage="/sitecore/login/Default.aspx" />
<强>亮点:强>
答案 2 :(得分:0)
经过进一步调查,并与sitecore社区联系后,我发现sitecore 8 update 5(mvc)中存在错误。安全检查无法正常工作。
这是FIX: 1.添加一个继承自SecurityCheck的管道。
public class SecurityCheck : Sitecore.Pipelines.RenderLayout.SecurityCheck
{
private RequestBeginArgs originalArgs;
public virtual void Process(RequestBeginArgs args)
{
originalArgs = args;
Process(new RenderLayoutArgs((System.Web.UI.Page)new Sitecore.Web.UI.HtmlControls.Page(), (Item)null));
}
protected override bool HasAccess()
{
SiteContext site = Context.Site;
if (site != null && site.RequireLogin && (!Context.User.IsAuthenticated && !this.IsLoginPageRequest()))
{
originalArgs.AbortPipeline();
return false;
}
if (site == null || site.DisplayMode == DisplayMode.Normal || (Context.User.IsAuthenticated || !(PreviewManager.GetShellUser() == string.Empty)) || this.IsLoginPageRequest())
return true;
originalArgs.AbortPipeline();
return false;
}
}
2。添加此处理器作为第一个处理器
<mvc.requestBegin>
<!-- security check for site -->
<processor type="Namespace.SecurityCheck, Assembly"/>
</mvc.requestBegin>