none
obtener los usuarios de un subsitio RRS feed

  • Pregunta

  • Buenos días, muchas gracias por su tiempo. Tengo un webPart donde traigo todos los usuarios de un subsitio, actualmente me está trayendo el de todos los sitios, como puedo definir que solo sea del sitio específico en el que estoy?

          public List<UsuariosBE> ListarUsuariosXSitio()
            {
                List<UsuariosBE> items = new List<UsuariosBE>();
                string usuario = string.Empty;
                string LoginName = string.Empty;
    
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite spSite = new SPSite(SPContext.Current.Web.Url))
                    {
                        using (SPWeb spWeb = spSite.OpenWeb())
                        {
                            spWeb.AllowUnsafeUpdates = true;
                            SPGroupCollection groupCollection = spWeb.SiteGroups;
                            foreach (SPGroup group in groupCollection)
                            {
                                SPUserCollection userCollection = group.Users;
                                foreach (SPUser user in userCollection)
                                {
                                    UsuariosBE itemtabla = new UsuariosBE();
                                    itemtabla.Usu_Usuario = LoginName;
                                    itemtabla.Usu_Nombre = user.Name;
                                    items.Add(itemtabla);
                                }
    
    
                            }
                        }
                    }
    
                });
                return items;
            }
    Gracias por la ayuda.



    yenni

    viernes, 8 de febrero de 2013 16:30

Respuestas

  • Hola Yenni,

    Es que lo estas haciendo mal, me explico para el uso del OpenWeb no le tienes que pasar la url entera del sitio solamente su path, es decir "subsitioprueba". Por eso te esta dando el fallo.

    Tambien te recomiendo que le eches un vistazo a este post del Maestro David Martos en la que explica y muy bien como llamar al SPSite y SPWeb en cada momento y con este seguro que entiendes el porque te esta fallando tu aplicación. http://geeks.ms/blogs/davidmartos/archive/2011/01/26/spcontext-using-runwithelevatedprivileges-y-dem-225-s.aspx

    Para que te hagas una idea para abrir el Site tienes una forma mucho mas correcta para abrirlo y no es mas que utilizar 

    using (SPSite site = new SPSite(SPContext.Current.Site.ID))

    Cualquier cosa o duda ya comentas.

    Un saludo,

    Adrián

    viernes, 8 de febrero de 2013 20:31

Todas las respuestas

  • Hola Yenni,

    Para que te traiga el de un subsitio especificio lo que debes de modificar en en el SPWeb pones la url del sitio que quieres poner y obtendras los resultados del sitio especifico en el que estas.

    Cualquier cosa ya comentas,

    Un saludo,

    Adrián

    viernes, 8 de febrero de 2013 16:54
  • Hola Adrian, me imagino que te refieres dentro del OpenWeb(SPContext.Current.Web.Name) que ya había probado y me sale error: There is no Web named "/http://servidor:111/Sitio/Subsisitoprueba

    Lo intenté con OpenWeb(SPContext.Current.Web.Name) y me sale error:There is no Web named "/Subsisitoprueba

    Gracias por la ayuda


    yenni

    viernes, 8 de febrero de 2013 18:52
  • Hola Yenni,

    Es que lo estas haciendo mal, me explico para el uso del OpenWeb no le tienes que pasar la url entera del sitio solamente su path, es decir "subsitioprueba". Por eso te esta dando el fallo.

    Tambien te recomiendo que le eches un vistazo a este post del Maestro David Martos en la que explica y muy bien como llamar al SPSite y SPWeb en cada momento y con este seguro que entiendes el porque te esta fallando tu aplicación. http://geeks.ms/blogs/davidmartos/archive/2011/01/26/spcontext-using-runwithelevatedprivileges-y-dem-225-s.aspx

    Para que te hagas una idea para abrir el Site tienes una forma mucho mas correcta para abrirlo y no es mas que utilizar 

    using (SPSite site = new SPSite(SPContext.Current.Site.ID))

    Cualquier cosa o duda ya comentas.

    Un saludo,

    Adrián

    viernes, 8 de febrero de 2013 20:31