DocumentDB - เชื่อมต่อบัญชี
เมื่อคุณเริ่มเขียนโปรแกรมกับ DocumentDB ขั้นตอนแรกคือการเชื่อมต่อ ดังนั้นในการเชื่อมต่อกับบัญชี DocumentDB ของคุณคุณจะต้องมีสองสิ่ง
- Endpoint
- รหัสการอนุญาต
จุดสิ้นสุด
Endpoint คือ URL ไปยังบัญชี DocumentDB ของคุณและสร้างขึ้นโดยการรวมชื่อบัญชี DocumentDB ของคุณเข้ากับ. documents.azure.com ไปที่แดชบอร์ดกันเถอะ
ตอนนี้คลิกที่บัญชี DocumentDB ที่สร้างขึ้น คุณจะเห็นรายละเอียดดังที่แสดงในภาพต่อไปนี้
เมื่อคุณเลือกตัวเลือก 'คีย์' จะแสดงข้อมูลเพิ่มเติมดังที่แสดงในภาพต่อไปนี้ คุณจะเห็น URL ไปยังบัญชี DocumentDB ของคุณซึ่งคุณสามารถใช้เป็นปลายทางของคุณได้
รหัสการอนุญาต
คีย์การให้สิทธิ์ประกอบด้วยข้อมูลประจำตัวของคุณและคีย์มีสองประเภท คีย์หลักช่วยให้สามารถเข้าถึงทรัพยากรทั้งหมดภายในบัญชีได้อย่างเต็มที่ในขณะที่โทเค็นทรัพยากรอนุญาตการเข้าถึงทรัพยากรที่ จำกัด
มาสเตอร์คีย์
ไม่มีอะไรที่คุณไม่สามารถทำได้ด้วยมาสเตอร์คีย์ คุณสามารถลบฐานข้อมูลทั้งหมดของคุณได้หากต้องการโดยใช้คีย์หลัก
ด้วยเหตุนี้คุณจึงไม่ต้องการแชร์คีย์หลักหรือแจกจ่ายไปยังสภาพแวดล้อมไคลเอนต์ เพื่อเป็นการเพิ่มมาตรการรักษาความปลอดภัยจึงควรเปลี่ยนบ่อยๆ
มีคีย์หลักสองคีย์สำหรับแต่ละบัญชีฐานข้อมูลหลักและรองตามที่ไฮไลต์ในภาพหน้าจอด้านบน
โทเค็นทรัพยากร
คุณยังสามารถใช้โทเค็นทรัพยากรแทนมาสเตอร์คีย์ได้อีกด้วย
การเชื่อมต่อตามโทเค็นทรัพยากรสามารถเข้าถึงทรัพยากรที่ระบุโดยโทเค็นเท่านั้นและไม่มีทรัพยากรอื่น ๆ
โทเค็นทรัพยากรจะขึ้นอยู่กับสิทธิ์ของผู้ใช้ดังนั้นก่อนอื่นคุณต้องสร้างผู้ใช้ตั้งแต่หนึ่งรายขึ้นไปและสิ่งเหล่านี้ถูกกำหนดที่ระดับฐานข้อมูล
คุณสร้างสิทธิ์อย่างน้อยหนึ่งรายการสำหรับผู้ใช้แต่ละรายโดยขึ้นอยู่กับทรัพยากรที่คุณต้องการอนุญาตให้ผู้ใช้แต่ละรายเข้าถึง
สิทธิ์แต่ละรายการจะสร้างโทเค็นทรัพยากรที่อนุญาตให้เข้าถึงทรัพยากรที่กำหนดแบบอ่านอย่างเดียวหรือแบบเต็มและอาจเป็นทรัพยากรของผู้ใช้ใดก็ได้ภายในฐานข้อมูล
ไปที่แอปพลิเคชันคอนโซลที่สร้างในบทที่ 3
Step 1 - เพิ่มการอ้างอิงต่อไปนี้ในไฟล์ Program.cs
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;
Step 2- ตอนนี้เพิ่ม Endpoint URL และรหัสการอนุญาต ในตัวอย่างนี้เราจะใช้คีย์หลักเป็นคีย์การอนุญาต
โปรดทราบว่าในกรณีของคุณทั้ง Endpoint URL และรหัสการให้สิทธิ์ควรแตกต่างกัน
private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
private const string AuthorizationKey =
"BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
Step 3 - สร้างอินสแตนซ์ใหม่ของ DocumentClient ในงานแบบอะซิงโครนัสที่เรียกว่า CreateDocumentClient และสร้างอินสแตนซ์ DocumentClient ใหม่
Step 4 - เรียกงานแบบอะซิงโครนัสจากวิธีการหลักของคุณ
ต่อไปนี้เป็นไฟล์ 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