【问题标题】:Access denied when using RunWithElevatedPrivileges?使用 RunWithElevatedPrivileges 时访问被拒绝?
【发布时间】:2010-06-15 22:03:11
【问题描述】:

我希望普通用户可以访问 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"];

【问题讨论】:

  • 您是否在包含 SharePoint 的服务器中运行了代码?

标签: c# asp.net sharepoint mysite


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    所以你需要更换

    SPWeb web = SPContext.Current.Web;
    

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

    【讨论】:

      【解决方案3】:

      您将 SPWeb 设置为 SPContext.Current.Web 这没有提升的权限。 参考这个post:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 2020-05-05
        相关资源
        最近更新 更多