現在,我正在使用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()'如果使用我的非特權用戶。
有什麼想法?