【发布时间】:2020-01-29 08:21:42
【问题描述】:
我目前正在从共享文件夹中检索 siteId 和 listId。 到目前为止,我设法在可以访问 Sharepoint 根目录的 Sharepoint 文件夹上执行此操作,但是当我使用共享 Sharepoint 位置的 URL 时,我收到以下错误消息: “租赁的主机名无效”
对于一些上下文,我的用例如下:
- 我的一位同事通过 Sharepoint (xxx.sharepoint.com) 与我共享一个文件夹。
- 我可以访问他的文件夹。
- 如果我只是转到根目录 (xxx.sharepoint.com),我会遇到“拒绝访问”,这很好(我相信)。
- 我想使用此文件夹的 URL 从共享文件夹中检索 sideId、listId(最后是 driveId)。
到目前为止,正如我之前所说,我能够为我可以访问根目录的共享点文件夹检索这些信息。 不幸的是,在我之前描述的用例中,我有一个错误,即使通过检索我有权访问的所有站点或从文件夹 URL 获取列表,我也无法检索它。
目前我正在使用的一段代码:
public async Task<List> UrlToList(string accessToken, string url)
{
url = url.Replace("/Forms/AllItems.aspx", "");
Uri uri = new Uri(url);
var segments = string.Join("", uri.Segments[0..^1]).TrimEnd('/');
var request = graphClient.Sites[uri.Host].SiteWithPath(segments).Lists.Request(Options(accessToken));
var lists = await request.GetAsync();
var list = lists.First(l => string.Compare(url, l.WebUrl, true) == 0);
return list;
}
目前只看到两个选项...可能是xxx.sharepoint.com的配置或者权限问题。
有没有可能的方法来检索这些信息?如果是这样,怎么做?是否还有任何可用的代码示例?
【问题讨论】:
标签: c# sharepoint .net-core microsoft-graph-api microsoft-graph-sdks