C#

2016-09-15 1 views
0

을 사용하여 SharePoint 2013 문서 라이브러리에서 사용자 권한을 제거하는 방법 SharePoint 2013의 문서 라이브러리에서 그룹을 제거하는 여러 가지 방법을 보았습니다.하지만 필자는 문서 라이브러리에 대한 개인의 사용 권한을 제거하고 그룹이 아니야.C#

이것은 내가 사용 해본 코드입니다. 오류없이 실행되지만 문서 라이브러리에 대한 사용자 권한을 제거하지 못합니다.

어떤 그룹이나 사이트에서도 사용자를 삭제하고 싶지 않습니다.

public void DeleteUserFromDocumentLibrary(string fullUserLogon, string shareName) 
    { 
     string Myurl = "https://host.domainname.com/fs"; 

     using (SPSite site = new SPSite(Myurl)) 
     { 
      site.AllowUnsafeUpdates = true; 

      using (SPWeb web = site.OpenWeb()) 
      { 
       web.AllowUnsafeUpdates = true; 
       web.ValidateFormDigest(); 

       fullUserLogon = "i:0#.w|" + fullUserLogon; 
       SPPrincipal principal = web.EnsureUser(fullUserLogon); 
       SPRoleAssignment rAssignment = new SPRoleAssignment(principal); 
       SPList list = web.Lists[shareName]; 

       foreach (SPListItem item in list.Items) 
       { 
        item.BreakRoleInheritance(true); 
        item.RoleAssignments.Remove(principal); 
        item.Update(); 
       } 


       web.AllowUnsafeUpdates = false; 
      } 
      site.AllowUnsafeUpdates = false; 
     } 
    } 

감사

답변

0

무슨 일을하는 것은 상속을 중단하고 문서 라이브러리에있는 각 항목에 대한 사용자 권한을 제거합니다. 라이브러리 자체에 대한 사용 권한은 동일하게 유지됩니다. 실제로 항목 수준 권한을 설정하고 있습니다.

목록 개체에서 동일한 작업을 수행하고 목록 항목을 통해 foreach를 제거하십시오.

list.BreakRoleInheritance(true); 
list.RoleAssignments.Remove(principal); 
list.Update();