如何使用c#从SharePoint 2013文档库中删除用户权限

本文关键字:删除 用户 权限 文档 2013 何使用 SharePoint | 更新日期: 2023-09-27 18:07:12

在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;
        }
    }

谢谢

如何使用c#从SharePoint 2013文档库中删除用户权限

您所做的是打破继承并删除文档库中每个项目的用户权限。库本身的权限将保持不变。实际上,您正在设置项目级别的权限。

尝试在列表对象上执行相同的操作,并通过列表项删除foreach。

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