Pasión por la tecnología…

marzo 19, 2012

SharePoint Online: Como permitir que usuarios anónimos escriban en una lista que requiere autenticación!

Archivado en: SharePoint 2010,SharePoint Foundation 2010,SharePoint Online — Juan Carlos González Martín @ 20:23

Cuando nos encontramos con la necesidad de qué usuarios anónimos puedan escribir datos en una lista de  SharePoint Online, tenemos que recurrir a un pequeño desarrollo que haga posible esto teniendo en cuenta que no es posible hacer elevación de privilegios:

  • En VS 11 Beta, creamos un proyecto de tipo SharePoint 2010 Project.
  • Elegimos como tipo de despliegue “Deploy as a sandboxed solution”.
  • Añadimos una característica al proyecto que configuramos de acuerdo a nuestras necesidades. Añadimos un Feature Event Receiver a la feature.
image image image
  • Codificamos el manejador para el evento FeatureActivated() de forma que configuremos el acceso anónimo a una lista. Lo que tenemos que hacer por una parte romper la herencia de permisos de la lista con respecto al sitio principal para a continuación especificar la secuencia de permisos a aplicar par el caso de acceso anónimo (propiedad AonymousPermMask64).
   1: SPWeb web = properties.Feature.Parent as SPWeb;

   2: SPList list = web.Lists["Productos"];

   3: // Chequear si tiene permisos unicos

   4: if (!list.HasUniqueRoleAssignments)

   5: {

   6:     list.BreakRoleInheritance(true);

   7:     //Aseguramos que cada uno pueda editar sus propios items

   8:     list.WriteSecurity = 2;

   9:  

  10:     // Concedemos permisos a usuarios anonimos

  11:     list.AnonymousPermMask64 =

  12:         (SPBasePermissions.Open |

  13:          SPBasePermissions.OpenItems |

  14:          SPBasePermissions.ViewFormPages |

  15:          SPBasePermissions.ViewListItems |

  16:          SPBasePermissions.AddListItems);

  17:  

  18:     list.Update();

  19: }

  • Lo siguiente simplemente es desplegar la solución Sandbox en SharePoint Online, proceso que con VS 11 Beta se simplifica.
  • Activamos la solución en la galería de soluciones Sandbox del sitio.
  • Activamos la correspondiente característica.
image image image
  • Comprobamos que efectivamente la rotura de permisos se ha realizado a través de las opciones de administración de la lista y en concreto la relativa a la gestión de permisos. Vemos como además los usuarios anónimos aparecen con permisos en la lista.
  • Finalmente, simplemente navegamos a la lista de forma anónima y comprobamos que podemos interactuar con ella.
image image
  • Por supuesto, cuando se desactive la característica deberíamos deshacer la rotura de permisos de forma que la lista vuelva a heredarlos. Para ello codificamos el manejador de FeatureDeactivating() de la siguiente forma:
   1: public override void FeatureDeactivating(SPFeatureReceiverProperties properties)

   2: {

   3:     SPWeb web = properties.Feature.Parent as SPWeb;

   4:     SPList list = web.Lists["Productos"];

   5:     // Chequear si tiene permisos unicos

   6:     if (list.HasUniqueRoleAssignments)

   7:     {

   8:         list.ResetRoleInheritance();

   9:         list.Update();

  10:     }

  11: }

About these ads

Dejar un comentario »

Aún no hay comentarios.

RSS feed para los comentarios de esta entrada. TrackBack URI

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

El tema Rubric. Blog de WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores

%d personas les gusta esto: