Social Icons

viernes, 17 de septiembre de 2010

Lambdas, Method Extensions y RunWithElevatedPrivileges

A estas alturas ya no es un problema para nadie abrir un sitio como administrador independientemente del usuario que este logueado, sin embargo, quiero proponer una función que me parece bastante útil.
/// 
        /// Returns a NEW site with full permissions
        /// 
        public static SPSite OpenSiteWithElevatedPrivileges(this SPSite site)
        {
            SPSite newSite = null;

            SPSecurity.RunWithElevatedPrivileges(() => newSite = new SPSite(site.ID));

            return newSite;
        }
Resulta cómodo, ¿no? A mí me gusta hacer
SPSite site = SPContext.Current.Site.OpenSiteWithElevatedPrivileges();
¿Qué opináis?

No hay comentarios: