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