2008-11-19 5 views
6

내가 누락 된 부분이 있는지 알고 싶습니다. 다음은 어떻게 처리할까요? SPFolder의 경우 해당 항목의 사용 권한 (SPFolder.Item)을 변경합니다. 그래서 SPFolder 권한을 관리하는 것이 SPListItem 권한을 관리하는 것으로 생각됩니다. SPListItem에 대해서는 SPListItem.BreakRoleInheritance()을 사용하여 역할 상속을 중단 한 다음 RoleAssignments 컬렉션에서 역할을 추가 및 제거합니다.Sharepoint : SPFolder 및 SPListItem 권한을 프로그래밍 방식으로 관리하는 방법

RoleAssignments가 (상속 외에) SPListItem의 사용 권한을 관리하는 유일한 방법이고 역할없이 개별 사용 권한을 관리하는 방법이 있는지 궁금합니다. EffectiveBasePermissions 속성도 있지만 잘 모르겠습니다.

그래서 은 RoleAssignments 컬렉션과 별도로 SPListItem 권한을 관리하는 다른 방법 (상속 외에)이 있습니까?

@Edit : 또한 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); 
} 

감사합니다!

답변

3

당신은 꽤 옳습니다. 저는 RoleAssignments가 실제로 사용 권한을 직접 관리하는 유일한 메커니즘이라고 믿습니다. 수행 방법에 대한 빠른 예를 보여주는 post이 있습니다. 나는 또한 좀 더 복잡한 것들을했을 때 twoposts을 사용했습니다.

3

post은 BreakRoleInheritance() 메소드를 사용하여 작업 할 때도 마찬가지입니다. BreakRoleInheritance (false)를 사용할 때 발생할 수있는 문제입니다.

+0

당신이 맞아 :) 나는 똑같은 문제를 겪었고 또한이 게시물을 보았습니다. – axk