Làm việc với Active Directory - Lập trình Active Directory – Phần 3
Số trang: 14
Loại file: pdf
Dung lượng: 121.13 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tạo ra các đối tượng mới Muốn tạo ra các đối tượng mới trong Active Directory nhưuser,computer,printer,contact .. ta có thể dùng lớp DirectoryEntry để thêm 1 đối tượng mới đến thư mục ta phải kết nối đến 1 đối tượng chứa,ví dụ như là OU .ở đây ta dùng đối tượng chứa với tên phân biệt CN=Users, DC=eichkogelstrasse, DC=local: DirectoryEntry de = new DirectoryEntry(); de.Path = "LDAP://celticrain/CN=Users, DC=eichkogelstrasse, DC=local"; Ta có thể lấy đối tượng DirectoryEntries bằng thuộc tính Children của DirectoryEntry : DirectoryEntries users = de.Children;Với DirectroyEntries ta có phương thức thêm ,bỏ ,tìm các đối tượng...
Nội dung trích xuất từ tài liệu:
Làm việc với Active Directory - Lập trình Active Directory – Phần 3 Làm việc với Active Directory Lập trình Active Directory – Phần 3Tạo ra các đối tượng mớiMuốn tạo ra các đối tượng mới trong Active Directory nhưuser,computer,printer,contact .. ta có thể dùng lớp DirectoryEntryđể thêm 1 đối tượng mới đến thư mục ta phải kết nối đến 1 đối tượngchứa,ví dụ như là OU .ở đây ta dùng đối tượng chứa với tên phân biệtCN=Users, DC=eichkogelstrasse, DC=local:DirectoryEntry de = new DirectoryEntry();de.Path = LDAP://celticrain/CN=Users, DC=eichkogelstrasse, DC=local;Ta có thể lấy đối tượng DirectoryEntries bằng thuộc tính Children củaDirectoryEntry :DirectoryEntries users = de.Children;Với DirectroyEntries ta có phương thức thêm ,bỏ ,tìm các đối tượng trongtập.ở đây ta tạo đối tượng user mới bằng phương thức Add(),ta cần tên củađối tượng và kiểu. ta có thể lấy tên kiểu trực tiếp dùng ADSI Edit:DirectoryEntry user = users.Add(CN=John Doe, user);Bây giờ đối tượng có giá trị thuộc tính mặc định.để đặc tả các giá trị thuộctính ta có thể thêm các thuộc tính bằng phương thức Add() của thuộc tínhProperties.nếu ta đặc tả thuộc tính không tồn tại thì sẽ có 1 biệt lệ :COMException The specified directory service attribute or value doesntexist:user.Properties[company].Add(Some Company);user.Properties[department].Add(Sales);user.Properties[employeeID].Add(4711);user.Properties[samAccountName].Add(JDoe);user.Properties[userPrincipalName].ActiveDirectoryd(JDoe@eichkogelstrasse.local);user.Properties[givenName].Add(John);user.Properties[sn].Add(Doe);user.Properties[userPassword].Add(someSecret);Cuối cùng ta viết dữ liệu đến Active Directory, ta phải flush cache :user.CommitChanges();Cập nhật các mục trong thư mụcSau khi đọc đối tượng ta có thể thay đổi giá trị . để bỏ tất cả các giá trị của 1thuộc tính đơn ta gọi phương thức PropertyValueCollection.Clear() .dùngAdd() để thêm giá trị mới đến thuộc tính.dùng Remove() và Removeat() đểbỏ các giá trị đặc tả từ 1 tập thuộc tínhTa thay đổi 1 giá trị đơn giản bằng các thiết lập nó đến một giá trị đặc tả.vídụ sau cho thấy số điện thoại được thay đổi và dùng 1 indexer trongPropertyValueCollection.với indexer 1 giá trị chỉ có thể thay đổi nếu tồntại.do đó ta nên luôn kiểm tra DirectoryEntry.Properties.Contains() nếuthuộc tính có trá trị :using (DirectoryEntry de = new DirectoryEntry()){ de.Path = LDAP://celticrain/CN=Christian Nagel, + OU=Wrox Press, DC=eichkogelstrasse, DC=local; if (de.Properties.Contains(mobile)) { de.Properties[mobile][0] = +43(664)3434343434; } else { de.Properties[mobile].Add(+43(664)3434343434); } de.CommitChanges();}Trong phần else ta thêm 1 thuộc tính mới có số điện thoại nếu nó không tồntại bằng phương thức PropertyValueCollection.Add(). nếu ta dùng Add() với1 thuộc tính tồn tại kết quả tuỳ thuộc vào kiểu của thuộc tính - đơn hay đagiá trị. nếu là thuộc tính có giá trị đơn sẽ xảy ra biệt lệ : COMException: Aconstraint violation occurred. nếu là đa giá trị thì chấp nhận xem như là đó làgiá trị thêm.Vì thuộc tính của điện thoại là đơn giá trị nên không thể thêm vào . tuy nhiênngười dùng có thể có nhiều số điện thoại. nếu ta thiết lập thuộc tínhotherMobile. otherMobile là đa giá trị thì ta có thể gọi Add() nhiều lần.có 1điểm quan trọng đối với thuộc tính đa giá trị : các giá trị không đ ược giốngnhau . nếu giống sẽ sinh ra biệt lệ :COMException: The specified directoryservice attribute or value alreActive Directoryy exists.Truy xuất các đối tượng ADSI bẩm sinhLớp DirectoryEntry hổ trợ việc gọi các phương thức của các đối tượng bêndưới trực tiếp bằng cách dùng phương thức Invoke().Thông số đầu tiên của invoke() là tên phương thức được gọi trong đối tượngADSI, từ khoá params trong thông số thứ 2 cho phép 1 số các đối số thêmđược truyền vào phương thức ADSI:public object Invoke(string methodName, params object[] args);Trong ví dụ sau ta dùng phương thức IADsUser.SetPassword() để thay đổipassword của đối tượng user trước đã tạo :using (DirectoryEntry de = new DirectoryEntry()){de.Path = LDAP://celticrain/CN=John Doe, +CN=Users, DC=eichkogelstrasse, DC=local;de.Invoke(SetPassword, anotherSecret);de.CommitChanges();}Thay vì dùng Invoke() ta cũng có thể dùng trực tiếp các đối tượng ADSI bêndưới. để làm điều này ta phải thêm 1 tham chiếu đến Active DS TypeLibrary bằng cách dùng Project|Add reference. sẽ tạo ra một lớp gói (wrapper) trong lớp này ta có thể truy xuất các đối tượng ADSI trongnamespace ActiveDs.Các đối tượng bẩm sinh có thể đưọc truy xuất bằng thuộc tính NativeObjectcủa lớp DirectoryEntry . ví dụ , đối tượng de là 1 đối tượng user,vì thế ta cóthể ép kiểu nó thành ActiveDs.IADsUser. SetPassword() . bằng cách th ...
Nội dung trích xuất từ tài liệu:
Làm việc với Active Directory - Lập trình Active Directory – Phần 3 Làm việc với Active Directory Lập trình Active Directory – Phần 3Tạo ra các đối tượng mớiMuốn tạo ra các đối tượng mới trong Active Directory nhưuser,computer,printer,contact .. ta có thể dùng lớp DirectoryEntryđể thêm 1 đối tượng mới đến thư mục ta phải kết nối đến 1 đối tượngchứa,ví dụ như là OU .ở đây ta dùng đối tượng chứa với tên phân biệtCN=Users, DC=eichkogelstrasse, DC=local:DirectoryEntry de = new DirectoryEntry();de.Path = LDAP://celticrain/CN=Users, DC=eichkogelstrasse, DC=local;Ta có thể lấy đối tượng DirectoryEntries bằng thuộc tính Children củaDirectoryEntry :DirectoryEntries users = de.Children;Với DirectroyEntries ta có phương thức thêm ,bỏ ,tìm các đối tượng trongtập.ở đây ta tạo đối tượng user mới bằng phương thức Add(),ta cần tên củađối tượng và kiểu. ta có thể lấy tên kiểu trực tiếp dùng ADSI Edit:DirectoryEntry user = users.Add(CN=John Doe, user);Bây giờ đối tượng có giá trị thuộc tính mặc định.để đặc tả các giá trị thuộctính ta có thể thêm các thuộc tính bằng phương thức Add() của thuộc tínhProperties.nếu ta đặc tả thuộc tính không tồn tại thì sẽ có 1 biệt lệ :COMException The specified directory service attribute or value doesntexist:user.Properties[company].Add(Some Company);user.Properties[department].Add(Sales);user.Properties[employeeID].Add(4711);user.Properties[samAccountName].Add(JDoe);user.Properties[userPrincipalName].ActiveDirectoryd(JDoe@eichkogelstrasse.local);user.Properties[givenName].Add(John);user.Properties[sn].Add(Doe);user.Properties[userPassword].Add(someSecret);Cuối cùng ta viết dữ liệu đến Active Directory, ta phải flush cache :user.CommitChanges();Cập nhật các mục trong thư mụcSau khi đọc đối tượng ta có thể thay đổi giá trị . để bỏ tất cả các giá trị của 1thuộc tính đơn ta gọi phương thức PropertyValueCollection.Clear() .dùngAdd() để thêm giá trị mới đến thuộc tính.dùng Remove() và Removeat() đểbỏ các giá trị đặc tả từ 1 tập thuộc tínhTa thay đổi 1 giá trị đơn giản bằng các thiết lập nó đến một giá trị đặc tả.vídụ sau cho thấy số điện thoại được thay đổi và dùng 1 indexer trongPropertyValueCollection.với indexer 1 giá trị chỉ có thể thay đổi nếu tồntại.do đó ta nên luôn kiểm tra DirectoryEntry.Properties.Contains() nếuthuộc tính có trá trị :using (DirectoryEntry de = new DirectoryEntry()){ de.Path = LDAP://celticrain/CN=Christian Nagel, + OU=Wrox Press, DC=eichkogelstrasse, DC=local; if (de.Properties.Contains(mobile)) { de.Properties[mobile][0] = +43(664)3434343434; } else { de.Properties[mobile].Add(+43(664)3434343434); } de.CommitChanges();}Trong phần else ta thêm 1 thuộc tính mới có số điện thoại nếu nó không tồntại bằng phương thức PropertyValueCollection.Add(). nếu ta dùng Add() với1 thuộc tính tồn tại kết quả tuỳ thuộc vào kiểu của thuộc tính - đơn hay đagiá trị. nếu là thuộc tính có giá trị đơn sẽ xảy ra biệt lệ : COMException: Aconstraint violation occurred. nếu là đa giá trị thì chấp nhận xem như là đó làgiá trị thêm.Vì thuộc tính của điện thoại là đơn giá trị nên không thể thêm vào . tuy nhiênngười dùng có thể có nhiều số điện thoại. nếu ta thiết lập thuộc tínhotherMobile. otherMobile là đa giá trị thì ta có thể gọi Add() nhiều lần.có 1điểm quan trọng đối với thuộc tính đa giá trị : các giá trị không đ ược giốngnhau . nếu giống sẽ sinh ra biệt lệ :COMException: The specified directoryservice attribute or value alreActive Directoryy exists.Truy xuất các đối tượng ADSI bẩm sinhLớp DirectoryEntry hổ trợ việc gọi các phương thức của các đối tượng bêndưới trực tiếp bằng cách dùng phương thức Invoke().Thông số đầu tiên của invoke() là tên phương thức được gọi trong đối tượngADSI, từ khoá params trong thông số thứ 2 cho phép 1 số các đối số thêmđược truyền vào phương thức ADSI:public object Invoke(string methodName, params object[] args);Trong ví dụ sau ta dùng phương thức IADsUser.SetPassword() để thay đổipassword của đối tượng user trước đã tạo :using (DirectoryEntry de = new DirectoryEntry()){de.Path = LDAP://celticrain/CN=John Doe, +CN=Users, DC=eichkogelstrasse, DC=local;de.Invoke(SetPassword, anotherSecret);de.CommitChanges();}Thay vì dùng Invoke() ta cũng có thể dùng trực tiếp các đối tượng ADSI bêndưới. để làm điều này ta phải thêm 1 tham chiếu đến Active DS TypeLibrary bằng cách dùng Project|Add reference. sẽ tạo ra một lớp gói (wrapper) trong lớp này ta có thể truy xuất các đối tượng ADSI trongnamespace ActiveDs.Các đối tượng bẩm sinh có thể đưọc truy xuất bằng thuộc tính NativeObjectcủa lớp DirectoryEntry . ví dụ , đối tượng de là 1 đối tượng user,vì thế ta cóthể ép kiểu nó thành ActiveDs.IADsUser. SetPassword() . bằng cách th ...
Tìm kiếm theo từ khóa liên quan:
lập trình tài liệu lập trình kỹ thuật lập trình giáo trình C ngôn ngữ lập trình C tự học lập trình với CGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 245 0 0 -
101 trang 196 1 0
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 179 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 177 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 147 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 145 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 143 0 0 -
161 trang 127 1 0
-
Bài giảng lập trình c căn bản - Trường Apptech - Chương 4
27 trang 116 0 0 -
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 114 0 0