1
  1. 我有一个用户拥有贡献权限的列表
  2. 我有一个事件处理程序,它通过 2.a CurrentlistItem.BreakRoleInheritance(true); 在列表上添加或更新事件时更改项目级别权限;2.b 并将用户添加到该列表

现在,如果添加的用户具有贡献权,则上述方法不起作用,但如果用户具有完全控制权,则上述方法起作用。

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

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

//阿米特

4

2 回答 2

2

您是否尝试过RunWithElevatedPrivileges?请记住在其中运行尽可能少的代码。

于 2010-06-24T16:08:10.020 回答
1

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

于 2010-06-24T16:16:05.313 回答