我想普通用户可以访问“用户信息列表”中的MySite根站点。我使用“RunWithElevatedPrivileges”的方法。不过扔拒绝访问错误。每例如我的根网站集mysite的是“ http://network.test.com ”。用户需要评估userinformation列表此网站集。他怎么可以访问?

 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"];
有帮助吗?

解决方案

SPContext.CurrentRunWithelevatedPrivileges运行升高上下文。欲了解更多信息请参见的博客文章。

其他提示

你设置你的SPWeb到SPContext.Current.Web,这并不拥有更高权限。只有从委托内部产生SPSites创建SPWebs升高。

所以,你需要替换

SPWeb web = SPContext.Current.Web;

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

你设置你的SPWeb到SPContext.Current.Web这并没有提升权限。 请参阅此

scroll top