.Net中如何操作IIS(源代码)[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

nbsp; }
  }
   
  //删除一个虚拟目录
  public void Delete(string strVirdir)
  {
   if(_virdirs.Contains(strVirdir))
   {
   object[] paras = new object[2];
   paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录
   paras[1] = strVirdir;
   rootfolder.Invoke("Delete",paras);
   rootfolder.CommitChanges();
   }
   else
   {
   throw new Exception("Can't delete " + strVirdir + ",because it isn't exists.");
   }
  }
  //批量更新
  public void UpdateBatch()
  {
   BatchUpdate(_virdirs);
  }
  //重载一个:-)
  public void UpdateBatch(VirtualDirectories vds)
  {
   BatchUpdate(vds);
  }
   
  ///<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 void UpdateDirInfo(DirectoryEntry de,VirtualDirectory vd)
  {
   de.Properties["AnonymousUserName"][0] = vd.AnonymousUserName;
   de.Properties["AnonymousUserPass"][0] = vd.AnonymousUserPass;
   de.Properties["AccessRead"][0] = vd.AccessRead;
   de.Properties["AccessExecute"][0] = vd.AccessExecute;
   de.Properties["AccessWrite"][0] = vd.AccessWrite;
   de.Properties["AuthBasic"][0] = vd.AuthBasic;
   de.Properties["AuthNTLM"][0] = vd.AuthNTLM;
   de.Properties["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();
  }
  
  //获取虚拟目录集合
  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];
 

本文关键:.Net中如何操作IIS(源代码)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top