Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 如何使用graph API从OneDrive获取文件共享人员详细信息_C#_Onedrive_Azure Ad Graph Api - Fatal编程技术网

C# 如何使用graph API从OneDrive获取文件共享人员详细信息

C# 如何使用graph API从OneDrive获取文件共享人员详细信息,c#,onedrive,azure-ad-graph-api,C#,Onedrive,Azure Ad Graph Api,我正在尝试读取权限详细信息以及在OneDrive中共享文件的人员。 在检查权限时,我只得到管理访问人员的详细信息,如“GrantedTo:”,其余显示如下 { "id": "89sd809e-a6fe-47cf-a563-d21fgac9fa3", "roles": [ "read" ], "link": { "scope": "users", "type": "view", "webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxx

我正在尝试读取权限详细信息以及在OneDrive中共享文件的人员。 在检查权限时,我只得到管理访问人员的详细信息,如“GrantedTo:”,其余显示如下

{
  "id": "89sd809e-a6fe-47cf-a563-d21fgac9fa3",
  "roles": [
    "read"
  ],
  "link": {
    "scope": "users",
    "type": "view",
    "webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
},
我怎样才能得到这些人的详细资料?为什么API仅为托管访问人员返回grantedTo

我尝试的代码:

var permissionss = await graphClient.Me.Drive.Items["itemID"].Permissions
                        .Request(requestOptions)
                        .WithUserAccount(ClaimsPrincipal.Current.ToGraphUserAccount())
                        .GetAsync();
请帮我找到解决办法


提前感谢

只有用户的明确权限才能与人员详细信息一起列出

什么是“明确许可”?您可以这样授予此类权限:

授予这样的访问权限后,将通过
/permissions
端点显示人员详细信息

如果您使用其他方法以如下方式共享此文件:

它实际上只是生成一个共享链接。没有与此文件共享的特定访问者。有权访问此文件的用户将能够通过此共享链接访问此文件

因此,您只能在响应中获得一个共享链接
“webUrl”:“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”


它是通过此图形端点的设计实现的。

除了被授予访问权限的人之外,您还试图检索什么?在我脑海中,我可以想到关于用户对象的更多细节,授予了哪些权限,以及关于共享链接的信息。这些项目的答案各不相同,因此,如果没有其他详细信息,很难回答您的问题。@SamaraSoucy MSFT我们必须输入电子邮件ID,同时将文件共享给可能在我们组织中或不在我们组织中的某些人。但是,在通过API检查权限时,我们将只获取通过“托管访问”选项而不是通过“共享”选项共享文件的人员。那么,如果我通过共享链接共享文件,如何获取其他人的详细信息及其权限?注意:“托管访问”=>直接访问。。抱歉出错了你好,艾伦。谢谢你的回答。因此,如果我们使用共享链接共享文件,就无法获取人员的详细信息和权限详细信息?那么,当有人使用链接打开文件时,PowerPoint或OneDrive如何识别权限详细信息?@CuriousBee当前Microsoft Graph没有公开端点来告知共享链接为谁工作。我们只能通过Microsoft Graph API创建与
范围
的“匿名”或“组织”的共享链接。看见如果我们想在正文中指定某些用户,我们将得到一个错误“作用域必须是‘组织’或‘匿名’”。因此,我们也无法通过Microsoft Graph获取共享链接的特定用户。您需要的信息应该由某个未公开的API完成。有没有办法从ShareWithMe文件中找到相同的详细信息?@CuriousBee ShareWithMe不支持此场景。它列出与登录用户共享的文件。不是已共享此文件的用户。