SharePoint 2010: Como usar el SPSecurityTrimmedControl en una WebPart!

En SharePoint 2010, como en SharePoint 2007 tenemos la posibilidad de controlar como se muestra la información al usuario (controles, secciones, partes del menú vertical, etc) usando un control especial: SPSecurityTrimmedControl. Se trata de un control especial que nos permite envolver elementos de SharePoint como pueden ser controles o elementos estáticos de forma segura de manera que sólo estén accesibles para usuarios que tengan unos ciertos permisos. En particular, vamos a ver como usar este control en una WebPart:

  • En VS 2010 creamos un proyeto de SharePoint 2010 de tipo “Empty SharePoint Project”. En el asistente de configuración elegimos como tipo de despliegue “Deploy as a farm solution”.
  • Añadimos al proyecto un elemento de tipo WebPart que codificamos de la siguiente forma:
   1: using System;

   2: using System.ComponentModel;

   3: using System.Web;

   4: using System.Web.UI;

   5: using System.Web.UI.WebControls;

   6: using System.Web.UI.WebControls.WebParts;

   7: using Microsoft.SharePoint;

   8: using Microsoft.SharePoint.WebControls;

   9:  

  10: namespace SPSecurityTrimmedWP.SPSecurityTrimmedWP

  11: {

  12:     [ToolboxItemAttribute(false)]

  13:     public class SPSecurityTrimmedWP : WebPart

  14:     {

  15:         protected override void CreateChildControls()

  16:         {

  17:             SPSecurityTrimmedControl spstcControl = new SPSecurityTrimmedControl();

  18:             spstcControl.Permissions = SPBasePermissions.EditListItems;

  19:             Label lblInformation = new Label();

  20:             lblInformation.Text = 

  21:                 "Información solo visiable para ciertos usarios";

  22:             spstcControl.Controls.Add(lblInformation);

  23:             this.Controls.Add(spstcControl);

  24:         }

  25:     }

  26: }

  • Desplegamos la WebPart y la añadimos en una página de WebParts. Comprobamos que un usuario con permisos puede visualizarla sin problemas.
  • En cambio, un usuario sin permisos no visualiza el contenido de la WebPart debido al uso del SPSecurityTrimmedControl.
image image

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.

4 comentarios en “SharePoint 2010: Como usar el SPSecurityTrimmedControl en una WebPart!”

  1. Hola Juan Carlos!
    Quería saber si este comportamiento se podría asociar a una Web Part de Lista de Datos Profesionales (la que se usa enlazada a un External Content Type), con el fin de aplicar seguridad a las Actions. O qué alternativa me recomienda para controlar la visibilidad de las Actions en función de los permisos del usuario?

    Muchas gracias!

    Carolina

  2. Hola Carolina,
    Varias cosas aquí:
    – Si te refieres a la WebPart por defecto, diría que no salvo que la uses programáticamente dentro de otra WebPart (habría que ver si es posible).
    – Otra posibilidad es crearte tu propia WebPart de acceso a la lista de datos profesionales y usar la técnica que se menciona en el post.

    Un saludo

Deja un comentario

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