使用提升的权限更新 Sharepoint 列表

发布于 2024-11-08 03:19:59 字数 450 浏览 1 评论 0原文

在 Web 部件中,没有任何权限的用户需要读取和更新 Sharepoint 列表。

提升权限可以正常读取列表,但是当我尝试更新同一列表时,会抛出异常。如何使用提升的权限更新列表?

SPSecurity.RunWithElevatedPrivileges(delegate()
{ 

SPSite oSite = SPControl.GetContextSite(HttpContext.Current);
SPWeb oWeb = oSite.OpenWeb();
oWeb.AllowUnsafeUpdates = true;
SPListItemCollection listItems = oWeb.Lists["nameList"].Items;
SPListItem item = listItems.Add();

... 

item.Update(); // Throws Exception
});

In a Webpart a user without any privileges needs to read and update a Sharepoint list.

Elevating privileges works ok for reading the list, but when I try to update the same list, throws a Exception. How is it possible to update a list with elevated privileges?

SPSecurity.RunWithElevatedPrivileges(delegate()
{ 

SPSite oSite = SPControl.GetContextSite(HttpContext.Current);
SPWeb oWeb = oSite.OpenWeb();
oWeb.AllowUnsafeUpdates = true;
SPListItemCollection listItems = oWeb.Lists["nameList"].Items;
SPListItem item = listItems.Add();

... 

item.Update(); // Throws Exception
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水晶透心 2024-11-15 03:19:59

提升的权限用于添加编辑和删除所有操作,因此一定是其他问题,请提供异常详细信息

elevated privilages is used to add edit and delete all operations so thier must be some other problem kindly provide the exception details

陌伤浅笑 2024-11-15 03:19:59

问题在于 SPSite 的创建。

正确的代码:

SPSite oSite = new SPSite(SPContext.Current.Site.ID); 
SPWeb oWeb = oSite.OpenWeb(SPContext.Current.Web.ID);                                 
listItems  = oWeb.Lists["nameList"];

The problem was the creation of the SPSite.

The correct code:

SPSite oSite = new SPSite(SPContext.Current.Site.ID); 
SPWeb oWeb = oSite.OpenWeb(SPContext.Current.Web.ID);                                 
listItems  = oWeb.Lists["nameList"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文