Можно ли получить список пользователей, которые имеют доступ к папке в Sharepoint через папку name
вместо папки ID
?
Причина: папка принадлежит дочернему сайту и имеет другой уникальный идентификатор по сравнению с основным сайтом, поэтому список пользователей будет пустым или неточным из-за разных идентификаторов на основном и дочерних сайтах.
Текущий код:
Main
//to modify the following code to get by folder name, instead of folder id
node.Attributes.Add("access", GetAccessXml(folder.Item.RoleAssignments, out originalAccess));
GetAccessXml
private string GetAccessXml(SPRoleAssignmentCollection roleAssignments, out string originalAccess)
{
//currently returning empty list
var list = roleAssignments.GetUserWithReadPermissionOnly();
var entries = "<Entities Append=\"False\" Error=\"\" Separator=\";\" MaxHeight=\"3\">{0}</Entities>";
var entryTemplate = "<Entity Key=\"{0}\" DisplayText=\"{1}\" IsResolved=\"True\" Description=\"{0}\"><MultipleMatches /></Entity>";
var entryBuilder = new StringBuilder();
var csv = new StringBuilder();
foreach (var principal in list)
{
var entry = entryTemplate;
entryBuilder.AppendFormat(entry, principal.LoginName, principal.Name);
csv.Append(principal.LoginName).Append(",");
}
originalAccess = csv.ToString().TrimEnd(',');
return entries.FormatWith(entryBuilder);
}
Я имею в виду использование folder.Item.Title
или folder.Item.Name
, но у них нет реализации .RoleAssignments
.
Любая помощь будет оценена.