【问题标题】:Is there any way to get the permissions from a shared file - OneDrive?有没有办法从共享文件 - OneDrive 中获取权限?
【发布时间】:2020-01-06 13:12:26
【问题描述】:

如何使用 GraphAPI 在 OneDrive 上获取与我共享文件的权限详情?

我尝试了以下代码,但权限值为空。

IDriveSharedWithMeCollectionPage driveItems = await graphClient.Me.Drive.SharedWithMe().Request(requestOptions)
            .WithUserAccount(ClaimsPrincipal.Current.ToGraphUserAccount())
            .GetAsync();

有没有办法通过使用我的共享文件中的 GraphAPI 来获取权限详细信息,例如读/写或只读?

权限显示在 OneDrive 中的 Manage Access 选项,但我如何使用 API 获取详细信息? 是否可以使用这样的 API 获取这些数据?

【问题讨论】:

    标签: c# microsoft-graph-api onedrive azure-ad-graph-api


    【解决方案1】:

    我没有尝试过,但我猜权限是特定于驱动器项目的,你可以在获取它之后获取它。你可以获得如下共享项目:

    GraphServiceClient graphClient = new GraphServiceClient( authProvider );
    
    var sharedWithMe = await graphClient.Me.Drive
        .SharedWithMe()
        .Request()
        .GetAsync();
    

    然后:

    GraphServiceClient graphClient = new GraphServiceClient( authProvider );
    
    var permissions = await graphClient.Me.Drive.Items["{item-id}"].Permissions
        .Request()
        .GetAsync();
    

    DriveItem 的权限关系不能作为获取 DriveItem 或 DriveItem 集合的调用的一部分进行扩展。您必须直接访问权限属性。

    DriveItem 的有效共享权限可以来自两个来源:

    • 直接应用于 DriveItem 本身的共享权限。

    • 共享从 DriveItem 的祖先继承的权限。

    补充参考:

    https://docs.microsoft.com/en-us/graph/api/driveitem-list-permissions?view=graph-rest-1.0&tabs=http

    希望对你有帮助。

    【讨论】:

    • 我可以使用第二种方法从我的驱动器项中获取共享文件的详细信息吗?因为当我尝试该方法时,它抛出了 404 错误:( .
    • 我尝试了文档中描述的其他选项,但所有选项都显示 404 错误。
    • 我没有机会检查,会检查并告诉你。
    • 你帮我检查过场景了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2020-09-29
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多