2010-06-15 26 views
8

Normal kullanıcının Mysite kök sitesindeki "Kullanıcı Bilgileri Listesi" ne erişmesini istiyorum. "RunWithElevatedPrivileges" yöntemini kullanıyorum. Hala erişim atma hatası reddedildi. örnek olarak benim mysite için kök site koleksiyonum "http://network.test.com" dir. Kullanıcı, bu site koleksiyonunu kullanıp kullanmadığını değerlendirmek istiyor. Buna nasıl erişebilir? RunWithelevatedPrivileges yükseltilmiş bağlam dışındaRunWithElevatedPrivileges kullanırken erişim reddedildi mi?

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

Kodu, SharePoint içeren bir sunucuda çalıştırdınız mı? –

cevap

6

SPContext.Current çalışır. Daha fazla bilgi için bkz. this blog yazısı.

6

SPWeb'inizi SPContext.Current.Web olarak ayarlıyorsunuz, bu yükseltilmiş ayrıcalıklara sahip değil. Delegenin içinde oluşturulan SPSites'ten yalnızca SPW'ler oluşturulur.

Yani sen yükseltilmiş ayrıcalıkları olmayan bu SPContext.Current.Web için SPWeb ayarladığımız

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

ile

SPWeb web = SPContext.Current.Web; 

değiştirmeniz gerekiyor. Bu post ürününe bakın:

İlgili konular