如何使用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;
}
}
谢谢
您所做的是打破继承并删除文档库中每个项目的用户权限。库本身的权限将保持不变。实际上,您正在设置项目级别的权限。
尝试在列表对象上执行相同的操作,并通过列表项删除foreach。
list.BreakRoleInheritance(true);
list.RoleAssignments.Remove(principal);
list.Update();