【问题标题】:How to remove permissions of a user on an item using Onedrive Graph API?如何使用 Onedrive Graph API 删除用户对项目的权限?
【发布时间】:2019-09-09 22:03:06
【问题描述】:

总结:

我正在尝试使用 Onedrive Graph API 删除用户对某个项目的权限,但我总是收到 403 Forbidden。我正在使用企业帐户,其他一切都可以正常工作;为用户添加权限、创建文件夹、上传文件等。

我正在关注此文档https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/permission_delete?view=odsp-graph-online

我做错了什么?

请求:

方法:删除

网址:https://graph.microsoft.com/v1.0/me/drive/items/01CFGODSVE5ZR7NAHG3FGLXM3G2YXDNYPF/permissions/aTowIy5mfG1lbWJlcnNoaXB8bWFyaW9AZXVyb21pYi5mcg

授权:承载 eyJ0e...

对请求的响应:

{
    "error": {
        "code": "notAllowed",
        "message": "Operation not allowed",
        "innerError": {
            "request-id": "23fe15ec-9e3a-4c78-8a82-52be07db60d4",
            "date": "2019-04-19T11:10:20"
        }
    }
}

邮递员请求和响应: https://i.ibb.co/y8wcsh8/postman.png

C# 代码:

public dynamic RemoveItemPermission(string itemId, string permissionId)
{
    string graphUrl = $"https://graph.microsoft.com/v1.0/me/drive/items/{itemId}/permissions/{permissionId}";
    HttpWebRequest request = WebRequest.CreateHttp(graphUrl);
    request.Headers.Add("Authorization", "Bearer " + AccessToken);
    request.Method = "DELETE";

    var response = request.GetResponse();
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
        return JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
    }
}

【问题讨论】:

    标签: c# onedrive


    【解决方案1】:

    感谢卡洛斯提出的非常详细的问题!根据您提供的信息,我们确实找到了删除授予特定用户的直接访问权限的问题。我们禁用了有问题的代码,因此希望您的问题现在得到解决。如果不是这样,请务必让我们知道。

    【讨论】:

      【解决方案2】:

      根据 Microsoft 文档,您只能删除未继承的权限。 只能删除未继承的共享权限。 inheritFrom 属性必须为空

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

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 2022-08-12
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多