多个资源的 Cosmos DB 权限

时间:2021-05-08 19:28:55

标签: azure permissions azure-cosmosdb azure-cosmosdb-sqlapi

我找到了以下文档:CosmosDB grant permission to multiple resources? 那里的答案指出,在资源令牌代理获取用户的权限提要并将其发送回客户端后:

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

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

客户端应用然后可以初始化 DocumentClient 类的实例并传递列表(前提是它将 Json 反序列化为 List<Permission>)。

var jsonString = await response.Content.ReadAsStringAsync();
var permissions = JsonConvert.DeserializeObject<List<Permission>>(jsonString);
var client = new DocumentClient(new Uri(EndpointUri), permisions);

我遇到的问题是 Permission 类有一个 Token 属性,它只有一个 getter 而没有 setter 存在。以下源代码来自 Microsoft.Azure.Documents 命名空间。

namespace Microsoft.Azure.Documents
{
  public class Permission : Resource
  {
    [JsonProperty(PropertyName = "resource")]
    public string ResourceLink { get; set; }
    [JsonProperty(PropertyName = "resourcePartitionKey")]
    public PartitionKey ResourcePartitionKey { get; set; }
    [JsonConverter(typeof (StringEnumConverter))]
    [JsonProperty(PropertyName = "permissionMode")]
    public PermissionMode PermissionMode { get; set; }

    [JsonProperty(PropertyName = "_token")]
    public string Token { get; }    <------------------------------------- HERE
  }
}

因此,尝试序列化 Token 字段时,复制的值为 null。

有人对此有任何解决方案吗?

0 个答案:

没有答案