Question

Les sites de la collection de mon site utilisent une propriété personnalisée pour déterminer quel "type" de site ils sont.E.g.

web.Properties["SiteCategory"] = "SomeCategory1";

Je prévois de créer un élément Web pour afficher tous les sites de la collection de mon site qui ont une propriété personnalisée.

Voici un extrait de ce que je planifie faire:

SPSite site = SPContext.Current.Site;
foreach (SPWeb web in site.AllWebs)
{
  if (web.Properties["SiteCategory"] == "SomeCategory1") {
     /* Insert code to display the current site URL on the web part */
  }
}

Le résultat serait-il défini par la sécurité pour l'utilisateur actuel?Ou viendrait-il simplement montrer tous les sites de la collection de sites?Que devrais-je vous assurer que la sécurité est comprise?

Aussi, Performance-Wise, est-ce une option viable?Si vous avez une autre façon de le faire, je suis toutes les oreilles.

Était-ce utile?

La solution

Utilisez le code suivant:

using(SPSite site = new SPSite("http://example/site/"))
{
    using (SPWeb web = site.OpenWeb())
    {
        SPWebCollection webCollection = web.GetSubwebsForCurrentUser();

            foreach (SPWeb web in webCollection)
             {
                if (web.Properties["SiteCategory"] == "SomeCategory1")
                    {}
             }
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top