我想知道我是否缺少某些東西。 下面是我該怎麼做: 對於SPFolder,我會更改關聯項目的權限(SPFolder.Item)。 所以我想管理SPFolder權限歸結爲管理SPListItem權限。 對於SPListItem,我將首先使用SPListItem.BreakRoleInheritance()
破解角色繼承,然後使用RoleAssignments
集合在其中添加和刪除角色。Sharepoint:如何以編程方式管理SPFolder和SPListItem權限
我不知道是否RoleAssignments是管理SPListItem的權限(除了繼承)的唯一方法,並且有沒有一種方法來管理沒有角色的個人權限。 還有EffectiveBasePermissions屬性,但我不確定。
所以問題是 是否有其他方式(除繼承外)管理除RoleAssignments集合外的SPListItem權限?
@編輯:還有AllRolesForCurrentUser,但我想你可以從RoleAssignments屬性獲得相同的信息,所以這個只是爲了方便。
@Edit:正如弗洛在他的回答指出存在與設置
folder.ParentWeb.AllowUnsafeUpdates = true;
並採用BreakRoleInheritance
用的論據有問題「假」(即不復制父對象的權限)。
folder.Item.BreakRoleInheritance(false);
BreakRoleInheritance
在允許不安全的更新之後,根本無法在GET請求上工作。推測該方法將AllowUnsafeUpdates
重置爲「假」。
一個解決辦法,我知道這是你後手動刪除繼承的權限BreakRoleInheritance(真),像這樣:
folder.Item.BreakRoleInheritance(false);
while(folder.Item.RoleAssignments.Count > 0) {
folder.Item.RoleAssignments.Remove(0);
}
謝謝!
你是對的:)我有同樣的問題,也遇到了這篇文章。 – axk 2008-11-29 19:02:08