Problemas de permisos en listas

22/11/2006 - 12:24 por Ramon Espuga | Informe spam
Hola a todos,

estoy intentando realizar una WebPart que me muestre una Vista de una
lista que se encuentra en otro Site. El tema es que quiero que si el usuario
no tiene permisos que la WebPart no aparezca. Esto se hacerlo comprobando
los permisos con la funcion DoesUserHavePermissions y en caso que no los
tenga dejar de ejecutar el código y poniendo la visibilidad de la WebPart a
false, pero he dado con un problema que no se resolver. El problema es:

Tengo un Site donde el usuario es Reader y donde está ubicada mi
WebPart. Esta WebPart lee una lista de otro Site donde este usuario tiene
únicamente permiso de "view items" en la lista que se va a mostrar. El
problema es que cuando en el código intento acceder a la lista hace que me
salte el PopUp de login del Internet Explorer y tras 3 intentos me dice que
no tiene permiso. Esto lo soluciono dando permiso de lectura sobre el site
al usuario pero no quiero que pueda entrar al site, solo quiero que pueda
ver los items de la lista. Es más, cuando compruebo los permisos del usuario
sobre la lista, me dice que si que los tiene, pero cuando intento acceder me
salta el PopUp. Os pongo el código a ver si veis algo ...

try

{

SPSite TopLevelSite = SPControl.GetContextSite(Context);

if
(!TopLevelSite.AllWebs[strSite].Permissions.DoesUserHavePermissions(SPRights.OpenWeb))

{

Exception ex = new Exception("El usuario no puede abrir el Site");

throw ex;

}

SPWeb Web = TopLevelSite.OpenWeb(strSite);


if
(!Web.Lists[strAlumniLinksList].Permissions.DoesUserHavePermissions(SPRights.ViewListItems))

{

Exception ex = new Exception("El usuario no puede ver los items de la
lista");

throw ex;

}


SPList list = Web.Lists[strAlumniLinksList];



.



Muchas gracias pro adelantado,

Ramon
 

Leer las respuestas

#1 Gustavo
22/11/2006 - 14:19 | Informe spam
Hola Ramon,
Usa el metodo CatchAccessDeniedException. Mira en el articulo

http://www.gavd.net/servers/sharepo...=2&itm(

como usarlo.
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx
http://geeks.ms/blogs/gvelez/


"Ramon Espuga" wrote:

Hola a todos,

estoy intentando realizar una WebPart que me muestre una Vista de una
lista que se encuentra en otro Site. El tema es que quiero que si el usuario
no tiene permisos que la WebPart no aparezca. Esto se hacerlo comprobando
los permisos con la funcion DoesUserHavePermissions y en caso que no los
tenga dejar de ejecutar el código y poniendo la visibilidad de la WebPart a
false, pero he dado con un problema que no se resolver. El problema es:

Tengo un Site donde el usuario es Reader y donde está ubicada mi
WebPart. Esta WebPart lee una lista de otro Site donde este usuario tiene
únicamente permiso de "view items" en la lista que se va a mostrar. El
problema es que cuando en el código intento acceder a la lista hace que me
salte el PopUp de login del Internet Explorer y tras 3 intentos me dice que
no tiene permiso. Esto lo soluciono dando permiso de lectura sobre el site
al usuario pero no quiero que pueda entrar al site, solo quiero que pueda
ver los items de la lista. Es más, cuando compruebo los permisos del usuario
sobre la lista, me dice que si que los tiene, pero cuando intento acceder me
salta el PopUp. Os pongo el código a ver si veis algo ...

try

{

SPSite TopLevelSite = SPControl.GetContextSite(Context);

if
(!TopLevelSite.AllWebs[strSite].Permissions.DoesUserHavePermissions(SPRights.OpenWeb))

{

Exception ex = new Exception("El usuario no puede abrir el Site");

throw ex;

}

SPWeb Web = TopLevelSite.OpenWeb(strSite);


if
(!Web.Lists[strAlumniLinksList].Permissions.DoesUserHavePermissions(SPRights.ViewListItems))

{

Exception ex = new Exception("El usuario no puede ver los items de la
lista");

throw ex;

}


SPList list = Web.Lists[strAlumniLinksList];



..



Muchas gracias pro adelantado,

Ramon



Preguntas similares