在SharePoint中按文件夹名称而不是文件夹ID获取用户访问权限列表

时间:2019-04-17 07:11:18

标签: c# sharepoint directory roles

是否可以通过文件夹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.Titlefolder.Item.Name,但它们没有.RoleAssignments的实现。

任何帮助将不胜感激。

0 个答案:

没有答案
相关问题