查找spdocument库的Admin
本文关键字:Admin 库的 spdocument 查找 | 更新日期: 2023-09-27 18:11:31
我有一个没有继承站点权限的文档库(设置了自定义权限)。现在我想知道谁有使用c#访问这个库的管理员权限。
我需要列出我拥有管理员权限的用户id。
谢谢,
不存在列表管理员这种东西。但是你可以获得具有管理列表权限的用户和组:
SPList list = // get your list
IEnumerable<SPPrincipal> admins = list.RoleAssignments.Cast<SPRoleAssignment>()
.Where(ra =>
ra.RoleDefinitionBindings.Cast<SPRoleDefinition>()
.Any(r => (r.BasePermissions & SPBasePermissions.ManageLists) == SPBasePermissions.ManageLists))
.Select(ra => ra.Member);
更新:
SPFolder
的权限可以通过相应的SPListItem
进行检查。这可以通过SPFolder.Item
属性来检索。由于SPListItem
和SPList
都继承自SPSecurableObject
,因此对SPListItem
的检查与上面描述的相同。
要区分SPUser
和SPGroup
,只需检查SPRoleAssigment.Member
的类型:
IEnumerable<SPUser> adminUsers = admins.OfType<SPUser>();
请注意,SPUser
对象可以代表AD安全组。这可以通过SPUser.IsDomainGroup
属性检查。