DocumentDB - Kết nối tài khoản

Khi bạn bắt đầu lập trình với DocumentDB, bước đầu tiên là kết nối. Vì vậy, để kết nối với tài khoản DocumentDB của bạn, bạn sẽ cần hai thứ;

  • Endpoint
  • Khóa ủy quyền

Điểm cuối

Điểm cuối là URL đến tài khoản DocumentDB của bạn và nó được tạo bằng cách kết hợp tên tài khoản DocumentDB của bạn với .documents.azure.com. Hãy chuyển đến Trang tổng quan.

Bây giờ, hãy nhấp vào tài khoản DocumentDB đã tạo. Bạn sẽ thấy các chi tiết như trong hình ảnh sau đây.

Khi bạn chọn tùy chọn 'Phím', nó sẽ hiển thị thông tin bổ sung như trong hình sau. Bạn cũng sẽ thấy URL đến tài khoản DocumentDB của mình, bạn có thể sử dụng URL này làm điểm cuối của mình.

Khóa ủy quyền

Khóa ủy quyền chứa thông tin xác thực của bạn và có hai loại khóa. Khóa chính cho phép truy cập đầy đủ vào tất cả các tài nguyên trong tài khoản, trong khi mã thông báo tài nguyên cho phép truy cập hạn chế vào các tài nguyên cụ thể.

Chìa khóa chính

  • Bạn không thể làm gì với khóa chính. Bạn có thể thổi bay toàn bộ cơ sở dữ liệu của mình nếu muốn bằng cách sử dụng khóa chính.

  • Vì lý do này, bạn chắc chắn không muốn chia sẻ khóa chính hoặc phân phối nó cho các môi trường máy khách. Là một biện pháp bảo mật bổ sung, bạn nên thay đổi nó thường xuyên.

  • Thực tế có hai khóa chính cho mỗi tài khoản cơ sở dữ liệu, khóa chính và khóa phụ như được đánh dấu trong ảnh chụp màn hình ở trên.

Mã thông báo tài nguyên

  • Bạn cũng có thể sử dụng mã thông báo tài nguyên thay vì khóa chính.

  • Các kết nối dựa trên mã thông báo tài nguyên chỉ có thể truy cập các tài nguyên được chỉ định bởi mã thông báo và không có tài nguyên nào khác.

  • Mã thông báo tài nguyên dựa trên quyền của người dùng, vì vậy trước tiên bạn tạo một hoặc nhiều người dùng và những người dùng này được xác định ở cấp cơ sở dữ liệu.

  • Bạn tạo một hoặc nhiều quyền cho mỗi người dùng, dựa trên tài nguyên mà bạn muốn cho phép mỗi người dùng truy cập.

  • Mỗi quyền tạo ra một mã thông báo tài nguyên cho phép truy cập chỉ đọc hoặc toàn quyền vào một tài nguyên nhất định và đó có thể là bất kỳ tài nguyên người dùng nào trong cơ sở dữ liệu.

Hãy chuyển đến ứng dụng console đã tạo trong chương 3.

Step 1 - Thêm các tham chiếu sau trong tệp Program.cs.

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

Step 2- Bây giờ thêm URL điểm cuối và khóa ủy quyền. Trong ví dụ này, chúng tôi sẽ sử dụng khóa chính làm khóa Ủy quyền.

Lưu ý rằng trong trường hợp của bạn, cả URL Điểm cuối và khóa ủy quyền phải khác nhau.

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

Step 3 - Tạo một phiên bản mới của DocumentClient trong tác vụ không đồng bộ được gọi là CreateDocumentClient và khởi tạo DocumentClient mới.

Step 4 - Gọi tác vụ không đồng bộ của bạn từ phương thức Chính của bạn.

Sau đây là tệp Program.cs hoàn chỉnh cho đến nay.

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

Trong chương này, chúng ta đã học cách kết nối với tài khoản DocumentDB và tạo một phiên bản của lớp DocumentClient.