Accesso negato quando si utilizza RunWithElevatedPrivileges?
-
27-09-2019 - |
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"];
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 :