现在,我正在使用SPSecurity.RunWithElevatedPrivileges方法让匿名用户将列表项添加到列表中。我想要做的是制作一个通用方法,它将Site,List和List项目作为参数,并将该项目添加到传递的列表中。现在,我有:作为匿名用户添加到Sharepoint列表
public static void AddItemElevated(Guid siteID, SPListItem item, SPList list)
{
SPSite mySite = SPContext.Current.Site;
SPList myList = WPToolKit.GetSPList(mySite, listPath);
SPWeb myWeb = myList.ParentWeb;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite eleSite = new SPSite(mySite.ID))
{
using (SPWeb eleWeb = eleSite.OpenWeb(myWeb.ID))
{
eleWeb.AllowUnsafeUpdates = true;
SPList eleList = eleWeb.Lists[myList.Title];
SPListItem itemToAdd = list.Items.Add();
itemToAdd = item;
itemToAdd.Update();
eleWeb.AllowUnsafeUpdates = false;
}
}
});
}
的问题是,“项目”得到的提升权限外初始化,所以当“itemToAdd”设置为“项”就失去了提升的权限,使代码在打破' item.update()'如果使用我的非特权用户。
有什么想法?