2016-09-15 83 views
0

我曾見過很多方法可以從SharePoint 2013中的文檔庫中刪除組。但我需要做的是將個人對文檔庫的權限刪除,不是一個羣體。如何使用c刪除SharePoint 2013文檔庫中的用戶權限#

這是我一直在使用的代碼。它運行時沒有錯誤,但無法刪除文檔庫上的用戶權限。

我不想從任何組或從站點中刪除用戶。

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(); 
相關問題