Sitecore - 这是一个“内部”网站吗?

时间:2014-01-18 09:53:44

标签: sitecore

是否有一种简单的方法可以确定某个网站是否是Sitecore自己的网站之一?

基本上,我正在寻找的是简写:

var sitenames = new string[] {"admin","shell","login","service"}; // etc.

if(!sitenames.Contains(Sitecore.Context.Site.Name))
    //do stuff

我在SiteContextSiteInfo类中看不到任何看起来对此有帮助的内容。

我很高兴自己编写这个功能。我只是想确保它还没有隐藏在某个地方。

2 个答案:

答案 0 :(得分:10)

查看web.config中的站点定义,所有Sitecore内部事物都将域属性设置为Sitecore。

所以基本上是这样的:

if (Sitecore.Context.Site.Domain != Sitecore.Security.Domains.Domain.GetDomain("sitecore"))
{
    // [Do stuff here]
}

答案 1 :(得分:4)

在@ Trayek回答后面我写了这个扩展方法,效果很好。

namespace Extensions
{
    public static class SiteContextExtensions
    {
        public static bool IsInternal(this SiteContext siteContext)
        {
            return siteContext.Domain.Name == "sitecore";
        }
    }   
}

用法:

if(!Sitecore.Context.Site.IsInternal())
    // Do stuff