En un proyecto web de Sharepoint 2013, hemos necesitado habilitar la creación de nuevos elementos en listas por parte de usuarios anónimos. Ello requiere dar acceso público a los formularios de la lista. Para evitar que cualquiera vea los elementos de las listas, utilizando «SPSecurityTrimmedControl» hemos modificado las páginas del formulario envolviendo la zona de webparts con este código:
<SharePoint:SPSecurityTrimmedControl runat="server" AuthenticationRestrictions="AuthenticatedUsersOnly"> <WebPartPages:WebPartZone>[Nuestra zona de Web Parts]</WebPartPages:WebPartZone> </SharePoint:SPSecurityTrimmedControl> <SharePoint:SPSecurityTrimmedControl runat="server" AuthenticationRestrictions="AnonymousUsersOnly"> <div class="alert alert-danger" role="alert"><strong>ERROR: </strong>Acceso denegado</div> </SharePoint:SPSecurityTrimmedControl>
Este procedimiento deberíamos repetirlo en todos los «.aspx» que tengamos en el formulario, incluyendo los que correspondan a vistas personalizadas.
En nuestro caso, al tener un webpart personalizado con el formulario y no utilizar el de nuevo elemento por defecto, también hemos insertado el código en » NewForm.aspx».
El resultado es que los usuarios anónimos, al intentar acceder a cualquier página propia de la administración de la lista, vea el siguiente mensaje:
El estilo del mensaje corresponde a las clases de Bootstrap. Os dejo aquí las clases CSS que utiliza.
.alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; }