我有一个在提供程序托管的应用程序(用 C# 编写并使用 CSOM 编写)中运行并访问我的 SharePointOnline 租户上的列表的函数。
只要我从创建列表的站点集中访问提供程序托管的应用程序,该功能就可以完全按预期工作。
public bool CanUserReadList(ClientContext context, string listId)
{
try
{
if (string.IsNullOrWhiteSpace(listId)) return false;
List list = context.Web.Lists.GetById(new Guid(listId));
context.Load(list, a => a.EffectiveBasePermissions,a=> a.DefaultViewUrl);
context.ExecuteQuery();
return list.EffectiveBasePermissions.Has(PermissionKind.OpenItems);
}
catch (Exception e)
{
//Error thrown if accessing from different site collection to
}
}
但是,如果我从不同的站点集合访问提供程序托管的应用程序,我将无法访问列表(我得到一个未找到文件)异常。
如何使用 CSOM Microsoft.SharePoint.Client 库从另一个网站集中访问包含在一个网站集中的列表?
如何对 CSOM/提供商托管应用程序中的列表进行“跨站点收集”读取?
“本地”我会使用列表的 URL 打开 SPSite ...但是到目前为止我在 CSOM/SharePointOnline 中尝试的一切都失败了。