2010-06-15 20 views
8

Deseo que el usuario habitual pueda acceder a la "Lista de información del usuario" en el sitio raíz de Mysite. Estoy usando el método "RunWithElevatedPrivileges". Sigue lanzando acceso denegado error. por ejemplo, mi colección de sitios raíz para mysite es "http://network.test.com". el usuario desea evaluar userinformation list this site collection. ¿Cómo puede acceder eso?Acceso denegado al usar RunWithElevatedPrivileges?

SPSecurity.RunWithElevatedPrivileges(delegate 
{ 
    using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID)) 
    { 

    ServerContext sc = ServerContext.Current; 
    UserProfileManager upm = new UserProfileManager(sc); 
    UserProfile up = null; 
    //get current user's profile (visitor) 
    if (upm.UserExists(SPContext.Current.Web.CurrentUser.LoginName)) 
    { 
     up =upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName); 

     SPWeb web = SPContext.Current.Web; 
     SPList userInformationList = web.Lists["User Information List"]; 
+0

¿ejecutó el código en el servidor que contiene SharePoint? –

Respuesta

6

SPContext.Current carreras fuera del contexto elevada RunWithelevatedPrivileges. Para obtener más información, consulte la publicación de blog this.

6

Está configurando su SPWeb en SPContext.Current.Web, esto no tiene privilegios elevados. Solo SPWebs creados desde SPSites creados dentro del delegado son elevados.

por lo que necesita para reemplazar

SPWeb web = SPContext.Current.Web; 

con

SPWeb web = site.OpenWeb(SPContext.Current.Web.ID); 
-1

está configurando su SPWeb a SPContext.Current.Web esto no tiene privilegios elevados. Consulte esto post:

Cuestiones relacionadas