У меня есть код, который работает в DEV, но не в UAT.
Я не могу получить список пользователей, которым предоставлено разрешение на доступ к папкам, а именно:
Содержание сайта> Список> Найти запись (содержимое папкиТип) 3 точки> Дополнительно> Совместно с
Ниже приведен мой код:
Main
Log("folder.Item.RoleAssignments = " + folder.Item.RoleAssignments);
node.Attributes.Add("access", GetAccessXml(folder.Item.RoleAssignments, out originalAccess));
Log("originalAccess = " + originalAccess);
GetAccessXml
private string GetAccessXml(SPRoleAssignmentCollection roleAssignments, out string originalAccess)
{
var list = roleAssignments.GetUserWithReadPermissionOnly();
Log("list = " + list.ToString());
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();
//LOG FILES shows that this loop was not entered <<============
foreach (var principal in list)
{
Log("principal.Name = " + principal.Name);
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.RoleAssignments = Microsoft.SharePoint.SPRoleAssignmentCollection
- list = System.Collections.Generic.List`1[Microsoft.SharePoint.SPPrincipal]
- originalAccess =
Файлы журналов показывают, что в методе GetAccessXml
, моя list
переменная пуста.
Могу ли я узнать, как устранить эту проблему, учитывая, что среда DEV работает, а UAT - нет?Спасибо