Principales respuestas
obtener los usuarios de un subsitio

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
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
- Propuesto como respuesta Santiago Porras RodríguezMVP, Moderator miércoles, 20 de febrero de 2013 12:28
- Marcado como respuesta Santiago Porras RodríguezMVP, Moderator jueves, 7 de marzo de 2013 12:41
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
-
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
-
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
- Propuesto como respuesta Santiago Porras RodríguezMVP, Moderator miércoles, 20 de febrero de 2013 12:28
- Marcado como respuesta Santiago Porras RodríguezMVP, Moderator jueves, 7 de marzo de 2013 12:41