是否可以通过文件夹name
而不是文件夹ID
来访问Sharepoint中的文件夹的用户列表?
原因:该文件夹来自子站点,并且与主站点相比具有另一个唯一ID,因此由于主站点和子站点中的ID不同,用户列表将为空或不准确。
当前代码:
主要
//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
的实现。
任何帮助将不胜感激。