Dynamics crm 使用Microsoft CDS Web API设置PrivilegeDepth

Dynamics crm 使用Microsoft CDS Web API设置PrivilegeDepth,dynamics-crm,dynamics-365,dynamics-crm-webapi,common-data-service,Dynamics Crm,Dynamics 365,Dynamics Crm Webapi,Common Data Service,我试图为我的公共数据服务环境创建一个应用程序用户及其安全角色,只使用WebAPI。我已经成功地创建了用户和角色,并将一些特权与角色相关联。我唯一不能做的就是设置职业特权协会的特权深度。 这是我用来创建具有一些权限的角色的请求负载: { "businessunitid@odata.bind": "/businessunits(6efad0b7-160b-eb11-a812-000d3ab2a6be)", "name": &

我试图为我的公共数据服务环境创建一个应用程序用户及其安全角色,只使用WebAPI。我已经成功地创建了用户和角色,并将一些特权与角色相关联。我唯一不能做的就是设置职业特权协会的特权深度。 这是我用来创建具有一些权限的角色的请求负载:

{
    "businessunitid@odata.bind": "/businessunits(6efad0b7-160b-eb11-a812-000d3ab2a6be)",
    "name": "Security Role Test",
    "iscustomizable": {
        "Value": true,
        "CanBeChanged": true,
        "ManagedPropertyLogicalName": "iscustomizableanddeletable"
    },
    "canbedeleted": {
        "Value": true,
        "CanBeChanged": true,
        "ManagedPropertyLogicalName": "canbedeleted"
    },
    "roleprivileges_association@odata.bind": [
        "/privileges(2493b394-f9d7-4604-a6cb-13e1f240450d)",
        "/privileges(707e9700-19ed-4cba-be06-9d7f6e845383)",
        "/privileges(e62439f6-3666-4c0a-a732-bde205d8e938)",
        "/privileges(e3f45b8e-4872-4bb5-8b84-01ee8f9c9da1)",
        "/privileges(f36ff7e9-72b9-4882-afb6-f947de984f72)",
        "/privileges(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
    ]
}
角色权限都是以最低深度(用户)创建的。有人知道如何设置不同的深度吗

另外,是否有更好的方法为角色分配权限?比如,将具有所需权限的XML上载到将其与角色关联的端点?有没有更好的方法来指定特权而不必知道它们的guid


如果你能帮我,我会非常感激的。谢谢

这应该是设置深度(如用户、本地等)的有效载荷。请确保进行测试,我现在没有机会进行测试


关于动态guid值,而不是硬编码,只需进行另一个服务调用以获取所有特权并迭代它们

这应该是设置深度(如用户、本地等)的有效载荷。请确保进行测试,我现在没有机会进行测试


关于动态guid值,而不是硬编码,只需进行另一个服务调用以获取所有特权并迭代它们

因此我找到了设置特权深度的解决方案。有一个行动

例如:

POST https://org12345.crm4.dynamics.com/api/data/v9.0/roles(1b3df93a-070f-eb11-a813-000d3a666701)/Microsoft.Dynamics.CRM.AddPrivilegesRole

{
    "Privileges": [
        {
            "Depth": "0",
            "PrivilegeId": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "1",
            "PrivilegeId": "7863e80f-0ab2-4d67-a641-37d9f342c7e3",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "2",
            "PrivilegeId": "d26fe964-230b-42dd-ad93-5cc879de411e",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "3",
            "PrivilegeId": "ca6c7690-c935-46b3-bfd2-abb306c2acc0",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        }
    ]
}

所以我找到了设置特权深度的解决方案。有一个行动

例如:

POST https://org12345.crm4.dynamics.com/api/data/v9.0/roles(1b3df93a-070f-eb11-a813-000d3a666701)/Microsoft.Dynamics.CRM.AddPrivilegesRole

{
    "Privileges": [
        {
            "Depth": "0",
            "PrivilegeId": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "1",
            "PrivilegeId": "7863e80f-0ab2-4d67-a641-37d9f342c7e3",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "2",
            "PrivilegeId": "d26fe964-230b-42dd-ad93-5cc879de411e",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        },
        {
            "Depth": "3",
            "PrivilegeId": "ca6c7690-c935-46b3-bfd2-abb306c2acc0",
            "BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
        }
    ]
}

谢谢你的回复,不过这会带来一个错误。无论如何,我找到了设置Privilege深度级别的解决方案。我会把答案贴出来的。谢谢你的回复,不过这会带来一个错误。无论如何,我找到了设置Privilege深度级别的解决方案。我会把答案贴出来。