Domanda

voglio utente normale può accedere alla "User List Informazioni" nel sito radice MySite. Sto usando "RunWithElevatedPrivileges" Metodo. Ancora gettando errore di accesso negato. per esempio il mio principale raccolta siti per mysite è " http://network.test.com ". l'utente vuole valutare lista Userinformation questa raccolta siti. Come può accedere a tale?

 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"];
È stato utile?

Soluzione

corre SPContext.Current al di fuori del contesto RunWithelevatedPrivileges elevato. Per maggiori informazioni visita questo post del blog .

Altri suggerimenti

si sta impostando il vostro SPWeb a SPContext.Current.Web, questo non dispone di privilegi elevati. Solo SPWebs creati da SPSites creati all'interno del delegato sono elevati.

Quindi è necessario sostituire

SPWeb web = SPContext.Current.Web;

con

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

si sta impostando il vostro SPWeb per SPContext.Current.Web questo non dispone di privilegi elevati. Fare riferimento questo posta :

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top