miércoles, 20 de julio de 2016

Error Attempted to perform an unauthorized operation al intentar obtener el nombre de un grupo de SharePoint 2010

Este error da porque se esta ejecutando una operación no autorizada y a pesar que utilizamos el método RunWithElevatedPrivileges de la clase SPSecurity ya que  invocamos la propiedad RoleAssigments de la biblioteca.  Este código esta corriendo sobre un EventReceiver a través de la clase SPItemEventReceiver que tiene sus peculiaridades a comparación del desarrollo de elementos Web en SharePoint.
 
 
 
Veamos el siguiente código:
 
 
 
 
Fue reemplazado por el siguiente código:
 
 

 
Aunque el código no reemplaza totalmente la lógica anterior si obtiene de forma directa el nombre del grupo que en el caso de la solución aplicaba efectivamente lo que se deseaba.
 
Lo que se hizo en el código es obtener los grupos del usuario actual a los cuales pertenece y que tiene la palabra lector. Que era fundamentalmente lo que se requería en la aplicación.
 
Así que ojo no den por sentado cuando utilizan SPSecurity.RunWithPriviliges(); que todo se ejecuta con el usuario administrador dentro del código primordialmente en un entorno como El EventReceiver.
 
 Así que Code4Fun!,
 
Juan Manuel Herrera Ocheita