2014-01-18 3 views
5

Gibt es eine einfache Möglichkeit festzustellen, ob eine Site eine Sitecore-eigene Site ist?Sitecore - Ist das eine 'interne' Seite?

Im Grunde, was ich suche ist eine Abkürzung für:

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

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

ich nichts in den SiteContext oder SiteInfo Klassen sehen, die für diese hilfreich aussehen.

Ich bin ziemlich glücklich, diese Funktionalität selbst zu schreiben. Ich möchte nur sicherstellen, dass es nicht schon irgendwo versteckt ist.

Antwort

10

Mit Blick auf die Site-Definitionen in der web.config alle Sitecore internen Dinge haben die Domain-Eigenschaft auf Sitecore gesetzt.

Also im Grunde so etwas wie diese:

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

aber Site: modules_website der Domain-Name ist 'Extranet'. Wie würde das ignoriert werden? korrigiere mich, wenn ich falsch bin. –

4

Aus der Rückseite @ Trayek Antwort ich diese Erweiterung Methode geschrieben, die gut funktioniert.

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

Verbrauch:

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