//获取虚拟目录集合 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["AnonymousUserName"][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.Properties["Path"][0]; vd.flag = 0; vd.DefaultDoc = (string)de.Properties["DefaultDoc"][0]; tmpdirs.Add(vd.Name, vd); } } return(tmpdirs); }
internal void Load(string path, string physicalPath) { VirtualDirectories.Add( new VirtualDirectory(null, VirtualDirectories) { Path = path, PhysicalPath = physicalPath }); }
internal override void AddChild(ConfigurationElement child) { if (child is VirtualDirectory virtualDirectory) { VirtualDirectories.Add(virtualDirectory); } else { base.AddChild(child); } }
///<summary> ///私有方法 ///</summary> //连接服务器 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); } }
//执行批量更新 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; }
private static VirtualDirectory GetMaxNumByIISVir(VirtualDirectories iisfirstvr) { IList<string> names=new List<string>(); foreach (var item in iisfirstvr) { VirtualDirectory v = (VirtualDirectory)(((System.Collections.DictionaryEntry)item).Value); if (v.Name.Length == 2 ) { try { var s= Convert.ToInt32(v.Name, 16); names.Add(v.Name); } catch (Exception) { } } } var name = names.OrderByDescending(p => p).FirstOrDefault(); if (string.IsNullOrEmpty(name)) { return null; } else { return iisfirstvr.Find(name); } }
/// ///私有方法 /// public void Close() { _virdirs.Clear(); _virdirs = null; rootfolder.Dispose(); }
//获取虚拟目录集合 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["AnonymousUserName"][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.Properties["Path"][0]; vd.flag = 0; vd.DefaultDoc = (string)de.Properties["DefaultDoc"][0]; tmpdirs.Add(vd.Name, vd); } } return tmpdirs; }
//连接服务器 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); } }
//执行批量更新 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; }
//重载一个:-) public void UpdateBatch(VirtualDirectories vds) { BatchUpdate(vds); }
//重载一个:-) public void UpdateBatch(VirtualDirectories vds) { BatchUpdate(vds); }