📜  DocumentDB-连接帐户

📅  最后修改于: 2020-11-28 13:43:09             🧑  作者: Mango


当您开始对DocumentDB进行编程时,第一步就是连接。因此,要连接到DocumentDB帐户,您需要做两件事:

  • 终点
  • 授权密钥

终点

端点是您DocumentDB帐户的URL,它是通过将DocumentDB帐户名与.documents.azure.com组合而成的。让我们去仪表板。

终点

现在,单击创建的DocumentDB帐户。您将看到下图所示的详细信息。

单击创建的DocumentDB

选择“键”选项时,它将显示其他信息,如下图所示。您还将看到DocumentDB帐户的URL,您可以将其用作端点。

选择键选项

授权密钥

授权密钥包含您的凭据,并且有两种类型的密钥。主密钥允许对帐户中所有资源的完全访问,而资源令牌允许对特定资源的受限访问。

万能钥匙

  • 使用万能钥匙您无能为力。您可以根据需要使用主密钥删除整个数据库。

  • 因此,您绝对不希望共享主密钥或将其分发给客户端环境。作为附加的安全措施,最好经常进行更改。

  • 每个数据库帐户实际上都有两个主密钥,如上面的屏幕快照中突出显示的那样,主密钥和辅助密钥。

资源令牌

  • 您也可以使用资源令牌代替主密钥。

  • 基于资源令牌的连接只能访问令牌指定的资源,而不能访问其他资源。

  • 资源令牌基于用户权限,因此首先创建一个或多个用户,这些令牌是在数据库级别定义的。

  • 根据要允许每个用户访问的资源,为每个用户创建一个或多个权限。

  • 每个权限都会生成一个资源令牌,该令牌允许对给定资源的只读或完全访问,并且可以是数据库中的任何用户资源。

让我们转到第3章中创建的控制台应用程序。

步骤1-在Program.cs文件中添加以下引用。

using Microsoft.Azure.Documents; 
using Microsoft.Azure.Documents.Client; 
using Microsoft.Azure.Documents.Linq; 
using Newtonsoft.Json;

步骤2-现在添加端点URL和授权密钥。在此示例中,我们将使用主键作为授权键。

请注意,在这种情况下,端点URL和授权密钥应该不同。

private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/"; 
private const string AuthorizationKey = 
   "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";

步骤3-在名为CreateDocumentClient的异步任务中创建DocumentClient的新实例,并实例化新的DocumentClient。

步骤4-从Main方法调用异步任务。

以下是到目前为止的完整Program.cs文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo { 

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
        
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
            
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
            
         Console.ReadKey();
      }
        
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
      }
        
   }
}

在本章中,我们学习了如何连接到DocumentDB帐户并创建DocumentClient类的实例。