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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Ramon Espuga
22/11/2006 - 14:50 | Informe spam
Hola Gustavo,

muchas gracias, no es exactamente lo que buscaba. Ya que mi problema
quizá sea de comprensión de modelo de objetos. El tema es que me lanza una
excepción UnauthorizedAccessException cuando intento comprobar los permisos
sobre la lista. Mi problema es que el usuario si que tiene permiso para ver
los items de la lista (Se los he asignado en la lista directamente y por
tanto es guest del Site). Supongo que el problema es que no puedo usar
Web.Lists[strAlumniLinksList] pero, en ese caso, como hago para acceder a la
lista?

Ramon



"Gustavo" wrote in message
news:
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



Respuesta Responder a este mensaje
#3 Ramon Espuga
22/11/2006 - 15:12 | Informe spam
Bueno,

ya he dado con el kit de la cuestion. Se trataba de la propiedad
ListsForCurrentUser. Debía poner esta propiedad a true antes de intentar
acceder a una lista específica. Simplemente poniendo esto ya me deja
acceder.

Muchas gracias por todo,

Ramon


"Ramon Espuga" wrote in message
news:uD$
Hola Gustavo,

muchas gracias, no es exactamente lo que buscaba. Ya que mi problema
quizá sea de comprensión de modelo de objetos. El tema es que me lanza una
excepción UnauthorizedAccessException cuando intento comprobar los
permisos sobre la lista. Mi problema es que el usuario si que tiene
permiso para ver los items de la lista (Se los he asignado en la lista
directamente y por tanto es guest del Site). Supongo que el problema es
que no puedo usar Web.Lists[strAlumniLinksList] pero, en ese caso, como
hago para acceder a la lista?

Ramon



"Gustavo" wrote in message
news:
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









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida