A megoldáshoz a DirectoryEntry osztályt használjuk, mellyel az Active Directory szolgáltatóit érhetjük el. Ilyen például az Internet Information Services (IIS), Lightweight Directory Access Protocol (LDAP), Novell NetWare Directory Service (NDS), és a WinNT névtér. Nekünk most persze az IIS-re lesz szükségünk.
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
Try
Hozzunk is létre kapcsolatot az IIS-el. Ha az Ön rendszerében az IIS nem a localhost alatt érhető el, akkor a program futása előtt az alábbi sort javítsa.
Dim iis As New DirectoryEntry("IIS://localhost/W3SVC/1")
Az IIS számtalan objektuma közül nekünk most az IIsWebVirtualDir gyermekobjektum főkönyvtárára lesz szükségünk, így ezt keressük elő a Children property Find függvényével.
Dim root As DirectoryEntry = iis.Children.Find("Root", "IIsWebVirtualDir")
Ha ez is megvan, akkor létrehozhatunk egy új virtuális könyvtárat a főkönyvtárból kiindulva. Ehhez szintén a Children property szükséges, melynek Add függvényével elvégezhetjük a szükséges hozzáadást. Első paraméterként a virtuális könyvtár nevét, másodikként a létrehozandó objektum típusát kell megadnunk.
Dim virtualDir As DirectoryEntry = root.Children.Add("animare", "IIsWebVirtualDir")
A létrehozott virtuális könyvtár tulajdonságait szükség szerint beállíthatjuk a Properties kollekción keresztül. Így megadhatjuk a hozzáférési jogosultságokat, valamint azt is, hogy melyik fizikai könyvtár legyen hozzárendelve a virtuális könyvtárunkhoz.
virtualDir.Properties("AccessRead").Add(True)
virtualDir.Properties("Path").Add("c:\Inetpub\wwwroot\animare")
Ezt követően már csak arról kell rendelkeznünk, hogy a létrehozott új objektum tárolásra is kerüljön.
virtualDir.Invoke("AppCreate", True)
virtualDir.CommitChanges()
root.CommitChanges()
iis.CommitChanges()
...