DocumentDB 连接帐户
当您开始针对 DocumentDB 进行编程时,第一步就是连接。因此,要连接到您的 DocumentDB 帐户,您需要做两件事;
Endpoint
授权密钥
Endpoint
Endpoint 是您的 DocumentDB 帐户的 URL,它是通过将您的 DocumentDB 帐户名称与 .documents.azure.com 组合而成的。让我们转到仪表板。
现在,单击创建的 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 类的实例。