Concesión de privilegio

La elevación de privilegios es una nueva característica de Windows SharePoint Services 3.0 que permite realizar acciones mediante programación en el código utilizando un mayor nivel de privilegio. El método Microsoft.SharePoint.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.

Uso estándar de RunWithElevatedPrivileges es:

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

Con frecuencia, para realizar cualquier operación útil en SharePoint es necesario obtener un nuevo objeto SPSite perteneciente a este código para que surtan efecto los cambios. Por ejemplo:

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

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