繁体   English   中英

使用RunWithElevatedPrivileges时拒绝访问?

[英]Access denied when using RunWithElevatedPrivileges?

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

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,但它没有提升权限。 参考这篇文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM