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