[windpole]定制MOSS权限管理(小结)

一.关于表单库和表单之间的“权限继承”:(在做精确到表单级的权限时)

  • 要点:应使当前用户保持始终对所有待修改对象有足够的权限,这样代码就不会出现太大的问题。
  •  在使用“BreakRoleInheritance(bool)和ResetRoleInheritance()”时应确保CurrWeb的“AllowUnsafeUpdates==true”,BreakRoleInheritance之后应再次用“AllowUnsafeUpdates=true”使AllowUnsafeUpdates为true,以便以后向‘权限集’内增加权限之用。
  • BreakRoleInheritance(false)最好不要在开启浏览器功能的表单内的SPList对象上使用,因为当它在Infopath中打开时没问题,而在浏览器中打开时会出现异常(原因:假设某‘SPList’下有某‘SPListItem’它的HasUniqueRoleAssignments==true,那么此时如果用SPList.BreakRoleInheritance(false)来清空除当前用户外的其他用户时操作将失败,因为一些用户对该‘SPListItem’有权限,清除‘父层(SPList)’上的权限意味着他们将‘自动’失去这些权限,但为何在‘InfoPath’和‘浏览器’中有不同的‘表现’... ? ... ?)。
  • 在List中使用“BreakRoleInheritance(bool)”时注意,假设当前List中有3个项,其中一个项有HasUniqueRoleAssignments==true,那么此时如果用“BreakRoleInheritance(false)”将会把该项内的所有已有权限清掉。
  • tmpRoleAssi = currList.RoleAssignments.GetAssignmentByPrincipal(currUserOrGroup);
    tmpRoleAssi.RoleDefinitionBindings.RemoveAll();
    tmpRoleAssi.Update(); //这句会使对‘tmpRoleAssi’的更改'刷回'currList.RoleAssignments集合内。

转载于:https://www.cnblogs.com/windpole/archive/2008/04/29/1175971.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值