(1) Createwebdir.cs use example
String sserver = "localhost"; string virtualdir = "bug2004"; // virtual directory string pathdir = @ "d: / mywebdirtest / bug2000" // physical catalog
IISMANAGER IISMG = New IISMANAGER (SSERVER); IISMG.Connect (); if (iismg.exists (VirtualDir))) {Console.Write (VirtualDir "IS EXIST!");} Else {Myini.iniWriteValue ("WebDir", " WebDirexist "," False ");
Iismg.get_anonymoususeuser (); string [] Anonymoususeuser = new string [2]; anonymoususeuser [0] = Iismg.Anonymoususeusername; anonymoususer [1] = Iismg.AnonymoususerPass;
VirtualDirectory newVirDir = new VirtualDirectory (VirtualDir, PathDir, anonymousUser); if (iisMg.Create (newVirDir)) Console.Write (VirtualDir "created successfully!"); ElseConsole.Write (VirtualDir "to create successful!");}
Iismg.close ();
(2) Createwebdir.cs **************************************************** ************** Using system; use system.data; using system.directoryservices; using system.collections;
A summary description of Namespace CreateWebdir {///
public void get_AnonymousUser () {_ AnonymousUserPass = "IUSR_DEVE-SERVER"; _AnonymousUserName = "IUSR_DEVE-SERVER"; VirtualDirectory vDir; try {Hashtable myList = (Hashtable) _virdirs; IDictionaryEnumerator myEnumerator = myList.GetEnumerator (); while (myEnumerator.MoveNext ( )) {vDir = (VirtualDirectory) myEnumerator.Value;! if (vDir.AnonymousUserName = ""! && vDir.AnonymousUserPass = "") {_ AnonymousUserName = vDir.AnonymousUserName; _AnonymousUserPass = vDir.AnonymousUserPass; break;}}} catch { _AnonymousUserPass = "IUSR_DEVE-SERVER"; _AnonymousUserName = "IUSR_DEVE-SERVER";}} public string AnonymousUserName {get {return _AnonymousUserName;} set {_AnonymousUserName = value;}} public string AnonymousUserPass {get {return _AnonymousUserPass;} set {_AnonymousUserPass = Value;}} // server property Defines the name of the access machine, which can be IP and calculation name public string server {get {returver;} set {_server = value;}} // Website property definition, for a number, for convenience Use string // Generally, the first host is 1, the second host is 2, and push the public string Website {get {return _Website;} set {_Website = value;}} // Virtual directory name public Virtualdirec Tories Virdirs {Get {Return_Virdirs;} set {_virdirs = value;}} ///
// Connect the server public void connection () {ConnectTOSERVER ();} // For easy to overload public void connect (String strserver) {_ server = strser; connectionToServer ();} // For easy heavy duty PUBLIC VOID Connect (String string STRSERVER , string strWebSite) {_ server = strServer; _website = strWebSite; ConnectToServer ();} // determines whether the virtual storage directory public bool Exists (string strVirdir) {return _virdirs.Contains (strVirdir);} // add a virtual directory public Bool create (VirtualDirectory newdir) {string strpath = "IIS: //" _server "/ w3svc /" _Website "/ root /" newdir.name; if (! _ virdirs.contains (newdir.name) || _batchflag) {try {// added to the ROOT Children set to DirectoryEntry newVirDir = rootfolder.Children.Add (newdir.Name, "IIsWebVirtualDir"); newVirDir.Invoke ( "AppCreate", true); newVirDir.CommitChanges (); Rootfolder.commitchanges (); // Then update the data UpdatedirInfo (NewVirdir, NewDir); return true;} catch (Exception EE) {// throw new exception (EE.TOSTRING ()); return false;}} else {Return True ("This Virtual Directory is already exist.");}} // Get a virtual directory public VirtualDirectory GetVirdir (String Strvirdir) ) {VirtualDirectory tmp = null; if (_virdirs.Contains (strVirdir)) {tmp = _virdirs.Find (strVirdir); ((VirtualDirectory) _virdirs [strVirdir]) flag = 2;.} Else {// throw new Exception ( " This Virtual Directory is not exists ");} Return TMP;}
/ / Update a virtual directory public void update (VirtualDirectory Dir) {// Judging whether the virtual directory that needs to be changed does IF (_VIRDIRDIRS.CONTAINS (Dir.Name)) {DirectoryEntry Ode = rootfolder.children.find (Dir.name, " IIsWebVirtualDir "); UpdateDirInfo (ode, dir);} else {// throw new Exception (" This virtual directory is not exists ");.}} // delete a virtual directory public void delete (string strVirdir) {if (_virdirs .Contains (STRVIRDIR)) {Object [] Paras = new object [2]; Paras [0] = "IisWebVirtualDir"; // Indicates the virtual directory Paras [1] = Strvird; Rootfolder.Invoke ("delete", PARAS); rootfolder.commitchanges ();} else {// throw new exception ("Can''t delete" strvirdir ", Because it isn''t exists.");}} // Batch update public void Updatebatch () {BatchUpdate;} // Reserved one :-) public void updatebatch (VirtualDirectories vds) {BatchUpdate (VDS);} ///
} // Connection Server Private Void ConnectTOServer () {string strpath = "iis: //" _server "/ w3svc /" _Website "/ root"; try {this.rootfolder = new DirectoryEntry (strPath); _ virdirs = GetVirdirs (this.rootfolder.children;} catch (exception e) {// throw new exception ("Can''t connect to the server [" _server "] ...", e);}} // perform bulk updating private void BatchUpdate (VirtualDirectories vds) {_ batchflag = true; foreach (object item in vds.Values) {VirtualDirectory vd = (VirtualDirectory) item; switch (vd.flag) {case 0: break; case 1: Create ( VD); Break; Case 2: Update (VD); Break;}} _ Batchflag = false;} // Update Stuff PRIVATE VOID UpdatedirInfo (DirectoryEntry DE, VirtualDirectory VD) {de.properties ["AnonymoususerName"] [0] = vd.anonymoususeusername; de.properties ["anonymoususerpass"] [0] = vd.anonymoususeuserpass; de.properties ["accessread"] [0] = vd.accessread; de.properties ["AccessExecute"] [0] = VD. AcceptExecute; de.properties ["accesswrite"] [0] = vd.accesswrite; de.properties ["authbasic"] [0] = vd.authbasic; de.properties ["authnTlm"] [0] = vd.authnTlm; De.properti es [ "ContentIndexed"] [0] = vd.ContentIndexed; de.Properties [ "EnableDefaultDoc"] [0] = vd.EnableDefaultDoc; de.Properties [ "EnableDirBrowsing"] [0] = vd.EnableDirBrowsing; de.Properties [ "Accessssl"] [0] = vd.accessssl; de.properties ["accessscript"] [0] = vd.accessscript; de.properties ["defaultdoc"] [0] = vd.defaultdoc; de.properties ["Path "] [0] = vd.path; de.commitchanges ();
// Gets the virtual directory collection of private VirtualDirectories GetVirDirs (DirectoryEntries des) {VirtualDirectories tmpdirs = new VirtualDirectories (); foreach (DirectoryEntry de in des) {if (de.SchemaClassName == "IIsWebVirtualDir") {VirtualDirectory vd = new VirtualDirectory (); vd.name = de.name; vd.accessRead = (bool) de.properties ["accessread"] [0]; vd.accessexecute = (bool) de.properties ["accessexecute"] [0]; vd.accessWrite = (BOOL) de.properties ["accesswrite"] [0]; vd.anonymoususername = (string) de.properties ["anonymoususername"] [0]; vd.anonymoususerpass = (string) de.properties ["anonymoususeusername"] [ 0]; vd.authbasic = (bool) de.properties ["authbasic"] [0]; vd.authnTLM = (bool) de.properties ["authnTLM"] [0]; vd.contentIndexed = (bool) de. Properties ["ContentIndexed"] [0]; vd.enableDefaultdoc = (bool) de.properties ["enabledefaultdoc"] [0]; vd.enableDirBrowsing = (bool) de.properties ["enabledirBrowsing"] [0]; vd. Accessssl = (bool) de.properties ["accessssl"] [0]; vd.accessscript = (bool) de.properties ["accessscript"] [0]; vd.path = (string) de.propertent IES ["PATH"] [0]; vd.flag = 0; vd.defaultdoc = (string) de.properties ["defaultdoc"] [0]; tmpdirs.add (vd.name, vd);}} Return TMPDIRS }
} ///
public int flag {get {return _flag;} set {_flag = value;}} public bool AccessRead {get {return _read;} set {_read = value;}} public bool AccessWrite {get {return _write;} set {_write = value;}} public bool AccessExecute {get {return _execute;} set {_execute = value;}} public bool AccessSSL {get {return _ssl;} set {_ssl = value;}} public bool AccessScript {get {return _script;} set {_script = value;}} public bool AuthBasic {get {return _authbasic;} set {_authbasic = value;}} public bool AuthNTLM {get {return _authntlm;} set {_authntlm = value;}} public bool ContentIndexed {get { return _indexed;} set {_indexed = value;}} public bool EnableDirBrowsing {get {return _endirbrow;} set {_endirbrow = value;}} public bool EnableDefaultDoc {get {return _endefaultdoc;} set {_endefaultdoc = value;}} public string name {get {return _name;} set {_name = value;}} public string Path {get {return _path;} set {_path = value;}} public string DefaultDoc {get {return _defaultdoc;} set {_defaultdoc = value; }} public string anonymoususeusername {get {RET urn _ausername;} set {_ausername = value;}} public string AnonymousUserPass {get {return _auserpass;} set {_auserpass = value;}}} ///