访问使用RunWithElevatedPrivileges时被拒绝了?
-
27-09-2019 - |
题
我想普通用户可以访问“用户信息列表”中的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.Current
外RunWithelevatedPrivileges
运行升高上下文。欲了解更多信息请参见这的博客文章。
其他提示
你设置你的SPWeb到SPContext.Current.Web,这并不拥有更高权限。只有从委托内部产生SPSites创建SPWebs升高。
所以,你需要替换
SPWeb web = SPContext.Current.Web;
与
SPWeb web = site.OpenWeb(SPContext.Current.Web.ID);
你设置你的SPWeb到SPContext.Current.Web这并没有提升权限。 请参阅此后一个>:
不隶属于 StackOverflow