是否有一种简单的方法可以确定某个网站是否是Sitecore自己的网站之一?
基本上,我正在寻找的是简写:
var sitenames = new string[] {"admin","shell","login","service"}; // etc.
if(!sitenames.Contains(Sitecore.Context.Site.Name))
//do stuff
我在SiteContext
或SiteInfo
类中看不到任何看起来对此有帮助的内容。
我很高兴自己编写这个功能。我只是想确保它还没有隐藏在某个地方。
答案 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