Si algo caracteriza a SharePoint es que está diseñado con la idea de que sea seguro y se eviten por ejemplo situaciones de cross-site scripting cuando estamos creando artefactos en los que se hace uso del modelo de objetos (MO)…y de aquí viene la idea de escribir este artículo. Básicamente SharePoint aplica una comprobación de seguridad cada vez que se realiza un cambio de información o datos a través del MO en peticiones HTTP. De hecho, los propios formularios de SharePoint utilizan un “form digest control” para forzar y garantizar que las operaciones sean seguras. Esto implica que cuando se realizan cambios en datos de SharePoint a través del MO en un GET, SharePoint “escupirá” una excepción de validación de seguridad…algo así como “Microsoft.SharePoint.SPException: The Security validation for this page is invalid”…la pregunta que surge aquí es si esta validación la podemos “saltar” en formularios o páginas que no herden de la propia infraestructura de páginas de SharePoint…la respuesta es que sí a través de la propiedad AllowUnsafeUpdates presente en SPSite y SPWeb:
1: SPWeb spwWeb = SPContext.Current.Web:
2: SPList splLista = spwWeb.Lists["Mi Lista"];
3: try{
4: spwWeb.AllowUnsafeUpdates=true;
5: splLista.Title="Nuevo Título";
6: splLista.Update();
7: }
8: finally{
9: spwWeb.AllowUnsafeUpdates=false;
10: }
Referencias: