8

我希望普通用户可以访问 Mysite 根站点中的“用户信息列表”。我正在使用“RunWithElevatedPrivileges”方法。仍然抛出拒绝访问错误。例如,我的 mysite 的根站点集合是“ http://network.test.com ”。用户想要评估用户信息列表这个网站集。他怎么能访问那个?

 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"];
4

3 回答 3

6

SPContext.CurrentRunWithelevatedPrivileges在提升的上下文之外运行。有关更多信息,请参阅博客文章。

于 2010-06-16T06:55:17.897 回答
6

您将 SPWeb 设置为 SPContext.Current.Web,这没有提升的权限。只有从委托内部创建的 SPSite 创建的 SPWeb 会被提升。

所以你需要更换

SPWeb web = SPContext.Current.Web;

SPWeb web = site.OpenWeb(SPContext.Current.Web.ID);
于 2010-06-16T06:57:53.757 回答
-1

您将 SPWeb 设置为 SPContext.Current.Web 这没有提升的权限。参考这篇文章

于 2014-06-18T09:42:59.080 回答