繁体   English   中英

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

[英]How to remove user permissions from a SharePoint 2013 document library using 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;
        }
    }

谢谢

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

只需尝试对列表对象执行相同的操作,然后删除列表项中的foreach。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM