DirectoryEntry 類
DirectoryEntry 類封裝 Active Directory 階層中的節點或對象。
命名空間:System.DirectoryServices
程式集:System.DirectoryServices(在 system.directoryservices.dll 中)
與 DirectoryEntry 組件關聯的類可以與任何 Active Directory 服務提供者一起使用。當前的一些提供者包括 Internet 資訊服務 (IIS)、輕量目錄訪問協議 (LDAP)、Novell NetWare 目錄服務 (NDS) 和 WinNT。
DirectoryEntry.Invoke 方法
對本機 Active Directory 對象調用方法。
public Object Invoke (
string methodName,
params Object[] args
)
參數
-
methodName
-
要調用的方法名。
-
args
-
物件類型的數組,它包含要調用的方法的參數。
傳回值
被調用的方法的傳回值。
public int CreateWebSite(string webSiteName, string pathToRoot)
{
return CreateWebSite(webSiteName, pathToRoot, false);
}
public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir)
{
DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");
// 為新WEB網站尋找一個未使用的ID
int siteID = 1;
foreach(DirectoryEntry e in root.Children)
{
if(e.SchemaClassName == "IIsWebServer")
{
int ID = Convert.ToInt32(e.Name);
if(ID >= siteID){siteID = ID+1;}
}
}
// 建立WEB網站
DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID);
site.Invoke("Put", "ServerComment", webSiteName);
site.Invoke("Put", "KeyType", "IIsWebServer");
site.Invoke("Put", "ServerBindings", ":80:");
site.Invoke("Put", "ServerState", 2);
site.Invoke("Put", "FrontPageWeb", 1);
site.Invoke("Put", "DefaultDoc", "Default.aspx");
site.Invoke("Put", "SecureBindings", ":443:");
site.Invoke("Put", "ServerAutoStart", 1);
site.Invoke("Put", "ServerSize", 1);
site.Invoke("SetInfo");
// 建立應用程式虛擬目錄
DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir");
siteVDir.Properties["AppIsolated"][0] = 2;
siteVDir.Properties["Path"][0] = pathToRoot;
siteVDir.Properties["AccessFlags"][0] = 513;
siteVDir.Properties["FrontPageWeb"][0] = 1;
siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
siteVDir.Properties["AppFriendlyName"][0] = "Root";
siteVDir.CommitChanges();
site.CommitChanges();
return siteID;
}