如何确定当前用户是否可以在 SharePoint Online/Office365 中查看列表项或读取列表?
我有一些返回列表的工作代码
// Retrieve all lists from the server.
context.Load(web.Lists,
lists => lists.Include(list => list.Title,
list => list.Id,
list => list.Hidden,
list => list.BaseTemplate,
list => list.BaseType));
// Execute query.
context.ExecuteQuery();
// Enumerate the web.Lists.
foreach (List list in web.Lists)
{
if (list.Hidden ||
list.BaseType != BaseType.GenericList) continue;
// .... check permissions here before adding ...
names.Add(list.Id.ToString(), list.Title);
}
但我不知道如何测试当前用户是否可以访问列表项。
最佳答案
- 使用List.EffectiveBasePermissions property来检索有效的 分配给当前用户的列表权限
- 使用BasePermissions.Has method通过指定 PermissionKind.ViewListItems到 判断当前用户是否可以访问List
修改示例
ctx.Load(web.Lists,
lists => lists.Include(list => list.Title,
list => list.Id,
list => list.Hidden,
list => list.BaseTemplate,
list => list.BaseType,
list => list.EffectiveBasePermissions));
ctx.ExecuteQuery();
foreach (List list in web.Lists)
{
if (list.Hidden ||
list.BaseType != BaseType.GenericList) continue;
if (!list.EffectiveBasePermissions.Has(PermissionKind.ViewListItems)) continue; //verity List permissions
}
关于sharepoint - 检查当前用户是否可以查看 SharePoint CSOM 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400634/