Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法获取特定用户也可以访问的sharepoint网站?_C#_Sharepoint_Microsoft Graph Api - Fatal编程技术网

C# 有没有办法获取特定用户也可以访问的sharepoint网站?

C# 有没有办法获取特定用户也可以访问的sharepoint网站?,c#,sharepoint,microsoft-graph-api,C#,Sharepoint,Microsoft Graph Api,我正在创建一个应用程序,允许用户扫描打印机上的文档,并将文档直接上载到Sharepoint。我已在Azure中使用管理员凭据设置了应用程序,并已授予对该应用程序的访问权限,以允许其读取和写入Sharepoint 我遇到的问题是,当我通过MS Graph API请求Sharepoint中的站点列表时,我得到了根目录中所有站点的列表,我想知道是否有一种方法可以将此列表过滤为仅可供特定用户访问的站点 我可以使用以下代码获取访问令牌: var cca = new ConfidentialClientAp

我正在创建一个应用程序,允许用户扫描打印机上的文档,并将文档直接上载到Sharepoint。我已在Azure中使用管理员凭据设置了应用程序,并已授予对该应用程序的访问权限,以允许其读取和写入Sharepoint

我遇到的问题是,当我通过MS Graph API请求Sharepoint中的站点列表时,我得到了根目录中所有站点的列表,我想知道是否有一种方法可以将此列表过滤为仅可供特定用户访问的站点

我可以使用以下代码获取访问令牌:

var cca = new ConfidentialClientApplication(appId, string.Format("https://login.microsoftonline.com/{0}/v2.0", tenantId), redirectUri, new ClientCredential(appSecret), null, appTokenCache.GetMsalCacheInstance());
var authResult = await cca.AcquireTokenForClientAsync(new[] { "https://graph.microsoft.com/.default" });
return authResult.AccessToken;
这段代码工作正常,我可以使用该访问令牌创建一个客户端访问图。然后,我使用以下代码获取站点:

var sites = await graphClient.Sites["Root"].Sites.Request().GetAsync();

这一行也工作并返回根目录中的子站点。但它会返回所有站点,因此我需要对该列表进行过滤,以便它只返回使用该应用程序的任何用户的站点。

您使用的是仅应用程序访问令牌。您必须使用用户访问令牌。在这里检查样品。有关更多详细信息,请参阅Graph explorer Hi Naveen,我已经阅读了您建议的示例文章,它看起来与我已经在做的一样,只是使用JavaScript而不是C#,除非我缺少一些您可以使用PnP库的内容。您可以使用getSubwebsForCurrentUser方法。您正在使用仅应用程序访问令牌。您必须使用用户访问令牌。在这里检查样品。有关更多详细信息,请参阅Graph explorer Hi Naveen,我已经阅读了您建议的示例文章,它看起来与我已经在做的一样,只是使用JavaScript而不是C#,除非我缺少一些您可以使用PnP库的内容。您可以使用getSubwebsForCurrentUser方法。