Concesión de privilegio

Última modificación: miércoles, 07 de abril de 2010

Hace referencia a: SharePoint Foundation 2010

La elevación de privilegios, una característica que se agregó en Windows SharePoint Services 3.0, permite realizar acciones mediante programación en el código usando un mayor nivel de privilegios. El método SPSecurity.RunWithElevatedPrivileges permite proporcionar un delegado que ejecuta un subconjunto de código en el contexto de una cuenta con más privilegios que el usuario actual.

Un uso estándar de RunWithElevatedPrivileges es:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    // Do things by assuming the permission of the "system account".
});

Con frecuencia, para realizar acciones en SharePoint, debe obtener un nuevo objeto SPSite para que surtan efecto los cambios. Por ejemplo:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite site = new SPSite(web.Site.ID))
    {
       // Do things by assuming the permission of the "system account".
    }
});

Aunque la elevación de privilegios proporciona una técnica eficaz para administrar la seguridad, se debe usar con cuidado. No debería exponer mecanismos directos y no controlados a personas con pocos privilegios que les permitan burlar los permisos que tienen concedidos. 

Nota importanteImportante

Si el método que se pasa a RunWithElevatedPrivileges incluye operaciones de escritura, la llamada a RunWithElevatedPrivileges debe ir precedida de una llamada a SPUtility.ValidateFormDigest() o a SPWeb.ValidateFormDigest().

Vea también

Conceptos

Identidad basada en notificaciones de SharePoint