Làm việc với Active Directory - Lập trình Active Directory - Phần 1

Để phát triển chương trình trong Active Directory ta dùng các lớp trong

namespace System.DirectoryServices và phải tham chiếu assembly

System.DirectoryServices .với các lớp này ta có thể truy vấn các đối tượng

,xem và cập nhật các thuộc tính, tìm các đối tượng và di chuyển các đối

tượng đến một chổ chứa đối tượng khác.

ta sẽ học các phần sau :

-Các lớp trong namespace System.DirectoryServices

-Tiến trình kết nối đến Active Directory -

pdf10 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 2058 | Lượt tải: 2download
Tóm tắt nội dung Làm việc với Active Directory - Lập trình Active Directory - Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Làm việc với Active Directory 
Lập trình Active Directory – Phần 1 
Để phát triển chương trình trong Active Directory ta dùng các lớp trong 
namespace System.DirectoryServices và phải tham chiếu assembly 
System.DirectoryServices .với các lớp này ta có thể truy vấn các đối tượng 
,xem và cập nhật các thuộc tính, tìm các đối tượng và di chuyển các đối 
tượng đến một chổ chứa đối tượng khác. 
ta sẽ học các phần sau : 
 - Các lớp trong namespace System.DirectoryServices 
 - Tiến trình kết nối đến Active Directory - 
 - Lấy các mục trong thư mục, tạo đối tượng mới và cập nhật các mục tồn 
tại 
 - Tìm kiếm trong Active Directory 
Các lớp trong System.DirectoryServices 
 - DirectoryEntry : lớp này là lớp chính trong namespace 
System.DirectoryServices .1 đối tượng của lớp này trình bày 1 đối tượng 
trong Active Directory lưu trữ.ta dùng lớp này để liên kết đến 1 đối tượng,và 
để xem và cập nhật thuộc tính. các thuộc tính của đối tượng được trình bày 
trong PropertyCollection. mỗi mục trong PropertyCollection có 1 
PropertyValueCollection 
 - DirectoryEntries : DirectoryEntries là 1 tập hợp các đối tượng 
DirectoryEntry.thuộc tính Children của đối tượng DirectoryEntry trả về 1 
danh sách các đối tượng trong tập DirectoryEntries 
DirectorySearcher : lớp này là lớp chính dùng trong việc tìm kếm các đối 
tượng với thuộc tính đặc trưng. lớp SortOption và kiểu liệt kê 
SearchScope,SortDirection và ReferalChasingOption có thể được dùng để 
định nghĩa việc tìm kiếm.kết quả tìm kiếm trong 1 SearchResult hoặc 
SearchResultCollection. ta cũng có các đối tượng ResultPropertyCollection 
và ResultPropertyValueCollection. 
Binding ( sự liên kết ) 
Để lấy giá trị của 1 đối tượng trong Active Directory , ta phải kết nối đến 
Active Directory. tiến trình kết nối gọi là binding.đưòng dẫn của binding có 
thể là : 
LDAP://dc01.globalknowledge.net/OU=Marketing, DC=GlobalKnowledge, 
DC=Com 
với tiến trình biding ta có thể đặc tả các mục sau: 
 - Protocol đặc tả provider được dùng 
 - Server Name ( tên server ) của domain controller 
 - Port number ( số cổng) của tiến trình server 
 - Distinguished Name ( tên phân biệt ) của đối tượng,để xác định đối 
tượng ta muốn truy xuất 
 - Username và Password nếu người dùng nếu một tài khoản khác với 
tài khoản đang chạy cần truy xuất Active Directory 
 - Kiểu Authentication có thể được đặc tả nếu cần mã hoá 
Chi tiết các tuỳ chọn này là : 
Protocol ( giao thức) 
Phần đầu tiên đặc tả provider ADSI.provider thực thi như là 1 COM server , 
việc định danh 1 progID có thể được tìm trong Registry trong 
HKEY_CLASSES_ROT . các provider trong Window 2000 là: 
LDAP : LDAP server, như là thư mục Exchange và Window 2000 Active 
Directory server 
GC: GC được dùng để truy xuất global catalog trong Active Directory.nó 
được dùng cho các truy vấn nhanh 
IIS: với provider ADSI cho IIS ta có thể tạo các website mới và quản trị nó 
trong IIS catalog 
WinNT : để truy xuất cơ sở dữ liệu người dùng trong các domain Window 
NT 4 cũ ta có thể dùng provider ADSI trong WinNT .cũng có thể dùng giao 
thức này để kết nối với domain Window 2000 nhưng ta cũng bị giới hạn đối 
với các thuộc tính mà có giá trị với NT4 
NDS : ProID này được dùng để giao tiếp với các dịch vụ Novell Directory 
NWCOMPAT : với NWCOMPAT ta có thể truy xuất các thư mục Novell cũ 
như là Novell Netware 3.x 
Server Name 
Server name là tuỳ chọn nếu ta đăng nhập vào 1 domain Active Directory . 
không có server name Window 2000 sẽ tìm domain controller 'tốt nhất ' 
trong domain mà kết hợp với người dùng để kết nối , nếu không có server 
trong site , domain controller đầu tiên tìm thấy sẽ được dùng . 
ví dụ 1 binding không có server :LDAP://OU=Sales, DC=GlobalKnowledge, 
DC=Com. 
Port number ( số cổng ) 
Sau server name là port number . cú pháp là : xxx. số cổng mặc định cho 
server LDAP là cổng 389: LDAP://dc01.globalknowledge.net:389. server 
Exchange dùng cùng số port như server LDAP . nếu server Exchange được 
cài đặt trên cùng hệ thống - ví dụ như 1 domain controller của Active 
Directory - có thể cấu hình số cổng khác . 
Distinguished name (tên phân biệt, DN ) 
Phần thứ tư ta có thể đặc tả trong đường dẫn là tên phân biệt ( DN).DN là 1 
tên duy nhất được bảo đảm để xác định đối tượng ta muốn truy xuất. với 
Active Directory ta có thể dùng cú pháp LDAP mà dựa trên X.500 để đặc tả 
tên của đối tượng. 
ví dụ ta có DN này : 
CN=Christian Nagel, OU=Trainer, DC=GlobalKnowledge, DC=com 
DN này đặc tả tên chung của Christian Nagel trong Organization Unit (OU) 
gọi Trainer trong Domain Component ( DC ) gọi GlobalKnowledge của 
Domain globalKnowledge.com .phần được đặc tả bên phải nhất là đối tượng 
gốc của domain. tên phải theo cấu trúc trong cây đối tượng. 
Relative Distinguished Name ( RDN) 
1 RDN được dùng để tham chiếu các đối tượng trong đối tượng chứa ( 
contrainer object). với 1 RDN việc đặc tả OU và DC không cần thiết,chỉ cần 
tên chung là đủ. CN=Chritian Nagel là 1 RDN bên trong OU .1 RDN có thể 
được dùng nếu ta có 1 tham chiếu đến 1 đối tượng chứa và ta muốn truy xuất 
vào các đối tượng con 
Default Naming context ( ngữ cảnh tên mặc định ) 
Nếu tên phân biệt không có trong đường dẫn, tiến trình binding sẽ được tạo 
với tên ngữ cảnh mặc định. ta có thể đọc ngữ cảnh tên mặc định với sự trợ 
giúp của rootDSE.LDAP 3.0 9 định nghĩa rootDSE như là gốc của cây thư 
mục trên 1 thư mục server . ví dụ : 
LDAP://rootDSE 
hay 
LDAP://servername/rootDSE 
Bằng cách liệt kê tất cả các thuộc tính của rootDSE ta có thể lấy thông tin 
defaultNamingContext mà được dùng khi không có tên nào được chỉ 
định.schemaNamingContext và configurationNamingContext đặc tả các tên 
được dùng để truy xuất Schema và cấu hình trong nơi lưu trữ Active 
Directory 
Đoạn mã sau dùng để lấy tất cả các thuộc tính trong rootDSE : 
using (DirectoryEntry de = new DirectoryEntry()) 
{ 
 de.Path = "LDAP://celticrain/rootDSE"; 
 de.Username = @"sentinel\chris"; 
 de.Password = "someSecret"; 
 PropertyCollection props = de.Properties; 
 foreach (string prop in props.PropertyNames) 
 { 
 PropertyValueCollection values = props[prop]; 
 foreach (string val in values) 
 { 
 Console.Write(prop + ": "); 
 Console.WriteLine(val); 
 } 
 } 
} 
Bên cạnh việc xuất các thuộc tính , chương trình này chỉ ra 
defaultNamingContext DC=eichkogelstrasse, DC=local ngữ cảnh mà có thể 
được dùng để truy xuất schema:CN=Schema, CN=Configuration, 
DC=eichkogelstrasse, DC=local và tên ngữ cảnh của cấu hình : 
CN=Configuration, DC=eichkogelstrasse, DC=local: 
Định danh đối tượng 
Mỗi đối tượng có 1 danh tính duy nhất, 1 GUID . 1 GUID là 1 số 128-bit 
độc nhất. 
Ta có thể liên kết đến 1 đối tượng dùng GUID.bằng cách này ta luôn lấy 
cùng 1 đối tượng, không quan tâm đối tượng được di chuyển đến nơi chứa 
nào khác.GUID được tạo ra vào lúc đối tượng được tạo và luôn kèm theo đối 
tượng. 
Ta có thể lấy chuỗi GUID với DirectoryEntry.NativeGuid. chuỗi đại diện 
này sau đó có thể được dùng để liên kết đối tượng. 
Ví dụ dùng GUID : tên đường dẫn trong 1 kết nối không server để liên kết 
đến một đối tượng cụ thể được đại diện bởi 1 GUID: 
LDAP:// 
Các tên đối tượng trong các domain WindowNT 
Provider WINNT không cho phép cú pháp LDAP trong phần tên của chuỗi 
liên kết.với provider đối tượng được đặc tả dùng ObjectName ,ClassName. 
chuỗi liên kết có giá trị trong 1 domain Window NT là : 
WinNT: 
WinNT://DomainName 
WinNT://DomainName/UserName, user 
WinNT://DomainName/ServerName/MyGroup, group 
Các hậu tố user và group đặc tả rằng ta truy xuất vào các đối tượng kiểu user 
và group 

File đính kèm:

  • pdfActive_Directory_1.pdf
Tài liệu liên quan