Pergunta

Os sites do meu conjunto de sites usam uma propriedade personalizada para determinar que "tipo" de site eles são.Por exemplo.

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

Estou planejando criar uma web part para mostrar todos os sites do meu conjunto de sites que possuem propriedades personalizadas.

Aqui está um trecho do que estou planejando fazer:

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

O resultado seria uma redução de segurança para o usuário atual?Ou mostraria apenas todos os sites do conjunto de sites?O que eu preciso para ter certeza de que a segurança está cortada?

Além disso, em termos de desempenho, esta é uma opção viável?Se você tiver alguma outra maneira de fazer isso, sou todo ouvidos.

Foi útil?

Solução

Use o seguinte código:

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")
                    {}
             }
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top