Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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
Azure CosmosDB是否向多个资源授予权限?_Azure_Permissions_Azure Cosmosdb - Fatal编程技术网

Azure CosmosDB是否向多个资源授予权限?

Azure CosmosDB是否向多个资源授予权限?,azure,permissions,azure-cosmosdb,Azure,Permissions,Azure Cosmosdb,我试图理解如何使用DocumentDB向多个资源授予权限。我不清楚我将如何处理这件事,或者目前是否可能 他们在这里的文件中说 如果希望两个用户可以访问同一待办事项列表,可以在资源令牌代理中向访问令牌添加其他权限 资源令牌代理链接如下: 我想他们的意思是: using Microsoft.Azure.Documents; Permission p = new Permission { PermissionMode = PermissionMode.All, Resource

我试图理解如何使用DocumentDB向多个资源授予权限。我不清楚我将如何处理这件事,或者目前是否可能

他们在这里的文件中说

如果希望两个用户可以访问同一待办事项列表,可以在资源令牌代理中向访问令牌添加其他权限

资源令牌代理链接如下:

我想他们的意思是:

using Microsoft.Azure.Documents;

Permission p = new Permission
{
    PermissionMode =  PermissionMode.All,
    ResourceLink = collection.SelfLink,
    ResourcePartitionKey = new PartitionKey(userId),
    Id = permissionId //needs to be unique for a given user
};
但是,此代码段仅支持一个分区键。这就是我想要做的,为集合中的多个分区键授予权限

这就是我假设创建令牌的调用:

permission = await Client.CreatePermissionAsync(UriFactory.CreateUserUri(databaseId, userId), p);
但同样,这看起来像是一种特殊的许可。这意味着您必须创建N个权限,每次访问其中一个资源时,您都需要从资源代理请求令牌?换句话说,如果我向5个资源授予权限,当我的客户机转到资源代理时,我需要返回5个令牌

没有办法说:此资源令牌授予所有这些资源的
PermissionMode.All
权限吗

如果我授予5个资源的权限,当我的客户机转到资源代理时,我需要返回5个令牌

有四个构造函数,其中两个构造函数支持提供多个资源密钥,允许使用生成的DocumentClient对象对多个资源的操作进行身份验证。您可以在资源令牌代理API中为用户授予多个资源的权限,并将权限对象列表(而不是单个资源令牌)返回到客户端应用程序

FeedResponse<Permission> permFeed = await client.ReadPermissionFeedAsync(UriFactory.CreateUserUri("dbid", " userId")); 

List<Permission> permList = permFeed.ToList();

这不管用。你看,我发现这个职位推迟了4年,但我认为这无法实现。Permissions类包含只读的
令牌
属性,因此无法从Json对象正确反序列化该属性。
标记
属性将始终为空。
var client = new DocumentClient(new Uri(EndpointUri), permList);