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

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: }

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *