【问题标题】:Sitecore - Is this an 'internal' site?Sitecore - 这是一个“内部”网站吗?
【发布时间】:2014-01-18 09:53:43
【问题描述】:

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

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

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

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

我在SiteContextSiteInfo 类中没有看到任何看起来对此有帮助的东西。

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

【问题讨论】:

    标签: sitecore


    【解决方案1】:

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

    所以基本上是这样的:

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

    【讨论】:

    • 但是 Site:modules_website 的域名是 'extranet'。怎么会被忽略?如果我错了,请纠正我。
    【解决方案2】:

    在@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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多