C# Azure DocumentDB 授权 key 权限

标签 c# azure azure-cosmosdb

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

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

类似的东西

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."); }
}

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

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

这里的目标是一种管理文档数据库的工具(我知道一些已经存在,这更多的是对我的技能的练习)。因此,沿着这些思路,如果有人尝试使用给定的 key 访问数据库,他们可能会也可能不会获得 rw key ,其中他们也可能不知道权限。理想情况下,可以显示标签或指示器来说明其访问级别。 谢谢!

最佳答案

客户端是使用授权 key 构建的,并且此时没有比您更多的信息。它只是一个字符串。

您也许可以利用DocumentClient.ReadPermissionAsync获取资源权限的方法。我还没有亲自尝试过,但可能值得探索。

但是,您不妨尝试读/写您想要的原始文档,并在适用时捕获由于权限有限而导致的异常。这是因为您无论如何都需要发出请求才能获得权限。

我不知道你为什么要做你正在做的事情,但是,我会退后一步问问自己是否可以确保你拥有正确的 key 来进行读/写操作想做。

HTH

关于C# Azure DocumentDB 授权 key 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079364/

相关文章:

c# - 什么时候在 WF4 中使用 BizTalk Mapper Activity 而不是 BizTalk Engine?

c# - 使用 OpenXMLWriter 时 Excel 中的日期格式问题

c# - 是否有将阿拉伯语 html 转换为 pdf 的免费组件?

c# - 使用自定义模型通过 C# 中的 Forms Recognizer V3 nuget 从表中提取数据

azure - 如何避免将login.microsoft.com重定向到live.com登录azure事件目录

Azure 服务总线 - 放弃的消息返回到同一订阅者

c# - DateTime、Epoch 和 DocumentDb

azure - Azure CosmosDB 查询资源管理器的结果与 Azure Functions 结果之间的差异

c# - 更新代码 (.cs) 时自动构建 - visual studio 2012

azure - Azure cosmos DB 是否支持 byte[] 存储?