C#Azure DocumentDB授权密钥权限

时间:2015-01-22 00:22:06

标签: c# azure azure-cosmosdb

我想知道是否有办法确定连接到Azure DocumentDB时使用的授权密钥的级别。

主要是为了防止在提供只读授权密钥时尝试创建文档或修改文档。

的内容
static async void LogIn(string url, string authKey)
{
    DocumentClient client = new DocumentClient(new Uri(url), authKey);
    if(?clientpermissions?== PermissionMode.Read)
    { Console.WriteLine("You are in read-only mode."); }
}

我看到用户类有一个可以访问的权限对象,但是当纯粹使用身份验证密钥时,我有点迷失。

我曾考虑尝试创建一个文档并查看是否存在异常,但我并不喜欢使用失败作为条件似乎是不好的做法。

这里的目标是管理文档数据库的一种工具(我知道一些已经存在,这更像是我的技能练习)。因此,沿着这些方向说有人试图用他们给出的密钥访问数据库,他们可能会或可能不会被给予rw密钥,其中他们也可能不知道权限。理想情况下,可以显示标签或指示符以说明其访问级别。 谢谢!

1 个答案:

答案 0 :(得分:0)

客户端使用授权密钥构建,并且没有关于它的信息。这只是一个字符串。

您可以利用DocumentClient.ReadPermissionAsync方法获取资源的权限。我没有尝试过第一手资料,但可能很适合探索。

但是,您也可以尝试读取/写入您正在使用的原始文档,并在适用时捕获异常,因为权限有限。这是因为您无论如何都需要提出请求才能获得权限。

我不知道为什么你正在做你正在做的事情,但是,如果你能确保你拥有正确的读/写操作键,我会退后一步问自己我想做。

HTH