无法检索SP列表中的用户权限

时间:2019-04-16 09:57:08

标签: c# list sharepoint access roles

我有一个在DEV中工作的代码,但在UAT中却没有。

我无法检索被授予文件夹权限的用户列表,这些用户是以下用户:

  

网站内容>列表>查找记录(文件夹内容类型)3个点>   高级>与...共享

下面是我的代码:


主要

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无法运行,我是否可以解决此问题?谢谢

0 个答案:

没有答案