在Webpart中,没有任何权限的用户需要读取和更新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
});
答案 0 :(得分:1)
提升权限用于添加编辑和删除所有操作,因此必须有其他一些问题,请提供异常详细信息
答案 1 :(得分:0)
问题在于SPSite的创建。
正确的代码:
SPSite oSite = new SPSite(SPContext.Current.Site.ID);
SPWeb oWeb = oSite.OpenWeb(SPContext.Current.Web.ID);
listItems = oWeb.Lists["nameList"];