它支持創建多個權限每個資源(每個分區鍵),下面是一個例子:。
User user = await client.CreateUserAsync(UriFactory.CreateDatabaseUri("SampleDatabase"), new User { Id = "NewUser" });
Permission permission = await client.CreatePermissionAsync(
user.SelfLink,
new Permission
{
Id = "ReadA",
PermissionMode = PermissionMode.Read,
ResourcePartitionKey = new PartitionKey("Andersen"),
ResourceLink = collection.SelfLink
});
Permission permission2 = await client.CreatePermissionAsync(
user.SelfLink,
new Permission
{
Id = "ReadW",
PermissionMode = PermissionMode.Read,
ResourcePartitionKey = new PartitionKey("Wakefield"),
ResourceLink = collection.SelfLink
});
權限適用於具有相同分區鍵的所有文檔。所以,當你訪問一個文件與權限的分區鍵,DocumentDB成功返回文檔,但與其它分區鍵,DocumentDB返回授權錯誤:
DocumentClient restrictedClient1 = new DocumentClient(
new Uri("https://FILLME:443/"),
permission.Token);
// Succeeds
await restrictedClient1.ReadDocumentAsync(
UriFactory.CreateDocumentUri("SampleDatabase", "SampleCollection", "AndersenFamily"),
new RequestOptions { PartitionKey = new PartitionKey("Andersen") });
// Fails
await restrictedClient1.ReadDocumentAsync(
UriFactory.CreateDocumentUri("SampleDatabase", "SampleCollection", "WakefieldFamily"),
new RequestOptions { PartitionKey = new PartitionKey("Wakefield") });
邊注 - 可以請你,請添加一個鏈接到文件這說明了這一點?這應該由DocumentDB團隊糾正。 –