[英]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.