使用Sharepoint列表事件处理程序指定项目级权限,但将其添加到用户具有贡献权限的列表 我有一个用户有贡献权限的列表 我有一个事件处理程序,它通过以下方式更改在列表中添加或更新事件的项目级权限: 2.一个CurrentlistItem.BreakRoleInheritance(真); 2.b并将用户添加到该列表中

使用Sharepoint列表事件处理程序指定项目级权限,但将其添加到用户具有贡献权限的列表 我有一个用户有贡献权限的列表 我有一个事件处理程序,它通过以下方式更改在列表中添加或更新事件的项目级权限: 2.一个CurrentlistItem.BreakRoleInheritance(真); 2.b并将用户添加到该列表中,sharepoint,sharepoint-2007,sharepoint-api,Sharepoint,Sharepoint 2007,Sharepoint Api,现在,如果正在添加的用户具有贡献权限,则上面的不起作用 但是,如果用户拥有完全控制权,将起作用 我认为一个解决方案是由系统管理员用户运行这些特权调用 如何解决这个问题,请指导,谢谢 //阿米特,你试过了吗?请记住在其中运行尽可能少的代码。仅使用RunWithElevatedPrivileges运行代码是不够的。凭证信息保存在SPSite对象内,大多数SPxxxx对象(包括SPWeb、SPListItem等)直接或间接使用该对象。为了修改项目权限,您必须仅使用事件处理程序提供的ID,重新创建在Ru

现在,如果正在添加的用户具有贡献权限,则上面的不起作用 但是,如果用户拥有完全控制权,将起作用

我认为一个解决方案是由系统管理员用户运行这些特权调用

如何解决这个问题,请指导,谢谢


//阿米特,你试过了吗?请记住在其中运行尽可能少的代码。

仅使用RunWithElevatedPrivileges运行代码是不够的。凭证信息保存在SPSite对象内,大多数SPxxxx对象(包括SPWeb、SPListItem等)直接或间接使用该对象。为了修改项目权限,您必须仅使用事件处理程序提供的ID,重新创建在RunWithElevatedPrivileges内使用的任何SPSite、SPListItem、SPWeb