日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1 通過.NET Framework訪問活動(dòng)目錄


System.DirectoryServices使用戶能夠通過ASP.NET訪問一些基本的用戶管理功能 。這篇文章首先回顧了活動(dòng)目錄(AD)的有關(guān)概念,然后簡(jiǎn)要地討論了實(shí)際的System.DirectoryServices名字空間本身,最后給出了可供我們?cè)趯?shí)際應(yīng)用程序中使用的代碼 。

活動(dòng)目錄是什么?

在目前的網(wǎng)絡(luò)環(huán)境下,能夠方便地控制對(duì)各個(gè)網(wǎng)絡(luò)設(shè)備的訪問是非常關(guān)健的 。在控制誰(shuí)在何時(shí)有訪問何種設(shè)備的權(quán)限時(shí),需要有一整套方法,這些設(shè)備包括打印機(jī)、文件以及其他的局域網(wǎng)或分布式網(wǎng)絡(luò)資源 。AD能夠提供這些功能,由于與操作系統(tǒng)的整合非常緊密,這意味著AD能夠在非常低的級(jí)別上提供支持 。

AD的工作原理

單地說(shuō),AD就是一個(gè)內(nèi)容為所有網(wǎng)絡(luò)資源、分層次、面向?qū)ο蟮臄?shù)據(jù)庫(kù) 。最頂層的對(duì)象一般是Organization (O),在該組織單元(OU)之下是容器,最后是包含實(shí)際資源的對(duì)象 。這種分層次的格式為系統(tǒng)管理人員創(chuàng)建了一種熟悉和易于管理的“樹” 。例如,如果指定一個(gè)OU訪問一個(gè)實(shí)際的資源,這一權(quán)限也將被賦予包含在其中的對(duì)象 。

如何創(chuàng)建AD?

在.NET Framework中,微軟為我們提供了System.DirectoryServices名字空間,它又使用了活動(dòng)目錄服務(wù)接口(ADSI) 。

DSI是通過編程與許多不同的目錄服務(wù)提供者交互的方式,也就是一種編程接口 。

System.DirectoryServices空間中的類能夠與如下所示的活動(dòng)目錄服務(wù)提供者配合使用:

表1.1 AD服務(wù)提供者


目錄服務(wù)提供者 路徑 Windows NT 5.0、Windows 2000或Windows XP WinNT://path Lightweight Directory Access Protocol (LDAP) LDAP://path Novell NetWare Directory Service NDS://path Novell Netware 3.x NWCOMPAT://path Internet Information Services (IIS) IIS://

在System.DirectoryServices名字空間內(nèi),有二個(gè)主要的類:System.DirectoryServices.DirectoryEntry和System.DirectoryServices.DirectorySearcher類 。本篇文章不涉及這二個(gè)類的細(xì)節(jié),需要注意的是,DirectorySearcher只能與LDAP提供者一起使用 。

在使用DirectoryEntry對(duì)象時(shí),每個(gè)對(duì)象都有一個(gè)模式 。模型是對(duì)象條目的類型 。例如,如果有一個(gè)User模式的DirectoryEntry對(duì)象,它就代表是一個(gè)用戶 。

在本篇文章中,我們使用了Windows 2000提供者(WinNT://)和System.DirectoryServices.DirectoryEntry類 。

用戶管理

在本篇文章的例子中,我們使用System.DirectoryServices名字空間創(chuàng)建一個(gè)數(shù)據(jù)訪問層(DAL),執(zhí)行一些非常基礎(chǔ)的用戶管理任務(wù) 。DAL是對(duì)執(zhí)行數(shù)據(jù)訪問的真實(shí)的復(fù)雜性進(jìn)行抽象的一種方法 。例如,如果我們要編寫一個(gè)訪問Access數(shù)據(jù)庫(kù)的DAL,就可以在對(duì)象中隱藏所有與ADO.NET有關(guān)的任務(wù) 。當(dāng)開發(fā)人員需要與數(shù)據(jù)庫(kù)打交道時(shí),只需要簡(jiǎn)單地使用這些對(duì)象,而無(wú)需關(guān)心特定的實(shí)現(xiàn)細(xì)節(jié) 。開發(fā)者根本無(wú)需為ADO.NET操心,即使是以后決定升級(jí)到SQL Server,也只是需要改變DAL,使之適合新的數(shù)據(jù)庫(kù)即可,其他的東西無(wú)需改變 。

用戶對(duì)象

我們建立的第一個(gè)對(duì)象用來(lái)表示任何給定用戶的當(dāng)前狀態(tài),該對(duì)象對(duì)User模式的DirectoryEntry類進(jìn)行抽象 。為了清楚起見,它看起來(lái)更象一個(gè)實(shí)際的User對(duì)象 。

namespace DSHelper {
public class DSUser {
public DSUser(System.DirectoryServices.DirectoryEntry user) {
this.domainName=user.Path;
this.Username=user.Name;
this.PassWord=user.Password;
try {
this.FullName=Convert.ToString(user.Invoke("Get", new object[]
{"FullName"}));
this.Description=Convert.ToString(user.Invoke("Get", new object[]
{"Description"}));
this.PasswordExpired=Convert.ToInt32(user.Invoke("Get", new object[]
{"PasswordExpired"}));
this.RasPermissions=Convert.ToInt32(user.Invoke("Get", new object[]
{"RasPermissions"}));
this.MaxStorage=Convert.ToInt32(user.Invoke("Get", new object[]

推薦閱讀