使用Sharepoint List事件处理程序指定项级别权限,但指定用户具有Contribute权限的列表

时间:2010-06-24 15:48:36

标签: sharepoint sharepoint-2007 sharepoint-api

  1. 我有一个用户有贡献权利的列表
  2. 我有一个事件处理程序,可以在列表中添加或更新事件时更改项级别权限 2.a CurrentlistItem.BreakRoleInheritance(true); 2.b并将用户添加到该列表
  3. 如果添加的用户具有贡献权,则上方无效 但如果用户具有完全控制权,可以>。

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

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

    //阿米特

2 个答案:

答案 0 :(得分:2)

你试过RunWithElevatedPrivileges吗?请记住在其中运行尽可能少的代码。

答案 1 :(得分:1)

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