現在、SPSecurity.RunWithElevatedPrivileges メソッドを使用して、匿名ユーザーがリスト アイテムをリストに追加できるようにしています。私がやりたいことは、Site、List、および List アイテムを引数として受け取り、渡されるリストにアイテムを追加する一般的なメソッドを作成することです。今私は持っています:
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;
}
}
});
}
問題は、'item' が昇格された権限の外で初期化されるため、'itemToAdd' が 'item' に設定されている場合、昇格された権限が失われ、コードが 'item.update()' で壊れる原因となることです。特権ユーザー。
何かご意見は?