Pregunta

Los sitios en la colección de mi sitio están usando una propiedad personalizada para determinar qué "tipo" del sitio son.E.g.

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

Estoy planeando crear una parte web para mostrar todos los sitios en la colección de mi sitio que tienen una propiedad personalizada.

Aquí hay un fragmento de lo que planeo hacer:

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

¿Se reduciría el resultado de seguridad para el usuario actual?¿O simplemente mostraría todos los sitios en la colección del sitio?¿Qué necesitaría para asegurarme de que sea la seguridad recortada?

TAMBIÉN, SERVICIO DE RENDIMIENTO, ¿Es esta una opción viable?Si tienes alguna otra forma de hacer esto, soy todos los oídos.

¿Fue útil?

Solución

Utilice el siguiente 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 bajo: CC-BY-SA con atribución
scroll top