问题
- I have a List to which users have contribute rights
- I have a Event Handler which changes the Item Level Permissions on adding or Updating events on list by 2.a CurrentlistItem.BreakRoleInheritance(true); 2.b and by adding users to that list
Now above does not work if user who is adding has rights of contribute but works if users has full control.
I think a solution could be to run these privileged calls by system admin user.
How can i solve this problem , Please guide, Thanks.
//Amit
回答1:
Have you tried RunWithElevatedPrivileges? Just remember to run as little code as possible within it.
回答2:
Just running your code using RunWithElevatedPrivileges is not enough. Credential info is kept inside the SPSite object that is used directly or indirectly by most SPxxxx objects, including SPWeb, SPListItem etc. In order to modify item permissions you will have to recreate any SPSite, SPListItem, SPWeb you use inside RunWithElevatedPrivileges, using only the IDs provided by the event handler.
来源:https://stackoverflow.com/questions/3111590/specifying-item-level-permissions-using-sharepoint-list-event-handler-but-to-a-l