使用提升的权限更新Sharepoint List

时间:2011-05-18 06:54:06

标签: sharepoint sharepoint-2010 web-parts elevated-privileges

在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
});

2 个答案:

答案 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"];