Domanda

I siti nella mia raccolta del sito utilizzano una proprietà personalizzata per determinare il "tipo" del sito.Ad esempio.

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

Sto pensando di creare una web part per mostrare tutti i siti nella mia raccolta del sito che hanno proprietà personalizzate.

Ecco uno snippet di quello che sto pensando di fare:

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 */
  }
}
.

Il risultato sarà la sicurezza rifinita per l'utente corrente?Oppure mostrerebbe solo tutti i siti nella collezione del sito?Cosa avrei bisogno di assicurarmi che sia rifinita la sicurezza?

Inoltre, performance-saggio, è un'opzione praticabile?Se hai qualche altro modo per farlo, sono tutte orecchie.

È stato utile?

Soluzione

Utilizzare il seguente codice:

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")
                    {}
             }
    }
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top