我有一个共享点站点集合,其中有两个站点,分别是站点 1 和站点 2。
我有一个用户,在 site1 中有贡献权限,在 site2 中有读取权限。
我在 site1 的 list1 中添加的项目上编写了一个事件接收器,用于在 site2 的 list2 中移动相同的记录。
public override void ItemAdded(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = properties.OpenSite())
{
using (SPWeb web = site.OpenWeb("/site2"))
{
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["List2"];
SPListItem item = list.Items.Add();
item["Title"] = "test";
item.Update();
web.AllowUnsafeUpdates = false;
}
}
});
}
我尝试了 RunWithElevatedPrivileges 甚至 AllowUnsafeUpdates 但不幸的是它不适用于我的情况。在 Update() 上它会抛出 UnauthorizedAccessException。
{System.UnauthorizedAccessException:
<nativehr>0x80070005</nativehr><nativestack></nativestack>
我正在使用带有 aug2012 累积更新的 sharepoint 2010 sp1。