Web°²×°³ÌÐò²»ÄÜÑ¡Ôñ°²×°Ä¿Â¼ÎÊÌâ(3)

Àà±ð£ºAsp µã»÷£º0 ÆÀÂÛ£º0 ÍƼö£º
CreateWebDir.cs Îļþ using System;
using System.Data;
using System.DirectoryServices;
using System.Collections;

namespace setWebDir
{
¡¡¡¡/// <summary>
¡¡¡¡/// IISManager µÄժҪ˵Ã÷¡£
¡¡¡¡/// </summary>
¡¡¡¡public class IISManager
¡¡¡¡{
¡¡¡¡¡¡¡¡//¶¨ÒåÐèҪʹÓõÄ
¡¡¡¡¡¡¡¡private string _server,_website,_AnonymousUserPass,_AnonymousUserName;
¡¡¡¡¡¡¡¡private VirtualDirectories _virdirs;
¡¡¡¡¡¡¡¡protected System.DirectoryServices.DirectoryEntry rootfolder;
¡¡¡¡¡¡¡¡private bool _batchflag;
¡¡¡¡¡¡¡¡public IISManager()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_server = "localhost";//ĬÈÏÇé¿öÏÂʹÓÃlocalhost£¬¼´·ÃÎʱ¾µØ»ú
¡¡¡¡¡¡¡¡¡¡¡¡_website = "1";
¡¡¡¡¡¡¡¡¡¡¡¡_batchflag = false;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡public IISManager(string strServer)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_server = strServer;
¡¡¡¡¡¡¡¡¡¡¡¡_website = "1";
¡¡¡¡¡¡¡¡¡¡¡¡_batchflag = false;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡/// <summary>
¡¡¡¡¡¡¡¡/// ¶¨Ò幫¹²ÊôÐÔ
¡¡¡¡¡¡¡¡/// </summary>

¡¡¡¡¡¡¡¡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ÊôÐÔ¶¨Òå·ÃÎÊ»úÆ÷µÄÃû×Ö£¬¿ÉÒÔÊÇIPÓë¼ÆËãÃû
¡¡¡¡¡¡¡¡public string Server
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡get{ return _server;}
¡¡¡¡¡¡¡¡¡¡¡¡set{ _server = value;}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//WebSiteÊôÐÔ¶¨Ò壬ΪһÊý×Ö£¬Îª·½±ã£¬Ê¹ÓÃstring
¡¡¡¡¡¡¡¡//Ò»°ãÀ´ËµµÚһ̨Ö÷»úΪ1,µÚ¶þ̨Ö÷»úΪ2£¬ÒÀ´ÎÀàÍÆ
¡¡¡¡¡¡¡¡public string WebSite
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡get{ return _website; }
¡¡¡¡¡¡¡¡¡¡¡¡set{ _website = value; }
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡//ÐéÄâĿ¼µÄÃû×Ö
¡¡¡¡¡¡¡¡public VirtualDirectories VirDirs
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡get{ return _virdirs; }
¡¡¡¡¡¡¡¡¡¡¡¡set{ _virdirs = value;}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡///<summary>
¡¡¡¡¡¡¡¡///¶¨Ò幫¹²·½·¨
¡¡¡¡¡¡¡¡///</summary>

¡¡¡¡¡¡¡¡//Á¬½Ó·þÎñÆ÷
¡¡¡¡¡¡¡¡public void Connect()
¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡ConnectToServer();
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//Ϊ·½±ãÖØÔØ
¡¡¡¡¡¡¡¡public void Connect(string strServer)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_server = strServer;
¡¡¡¡¡¡¡¡¡¡¡¡ConnectToServer();
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//Ϊ·½±ãÖØÔØ
¡¡¡¡¡¡¡¡public void Connect(string strServer,string strWebSite)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_server = strServer;
¡¡¡¡¡¡¡¡¡¡¡¡_website = strWebSite;
¡¡¡¡¡¡¡¡¡¡¡¡ConnectToServer();
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//ÅжÏÊÇ·ñ´æÕâ¸öÐéÄâĿ¼
¡¡¡¡¡¡¡¡public bool Exists(string strVirdir)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡return _virdirs.Contains(strVirdir);
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//Ìí¼ÓÒ»¸öÐéÄâĿ¼
¡¡¡¡¡¡¡¡public bool Create(VirtualDirectory newdir)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡string strPath = "IIS://" + _server + "/W3SVC/" + _website + "/ROOT/" + newdir.Name;
¡¡¡¡¡¡¡¡¡¡¡¡if(!_virdirs.Contains(newdir.Name) || _batchflag )
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¼ÓÈëµ½ROOTµÄChildren¼¯ºÏÖÐÈ¥
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DirectoryEntry newVirDir = rootfolder.Children.Add(newdir.Name,"IIsWebVirtualDir");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡newVirDir.Invoke("AppCreate",true);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡newVirDir.CommitChanges();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡rootfolder.CommitChanges();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//È»ºó¸üÐÂÊý¾Ý
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡UpdateDirInfo(newVirDir,newdir);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch(Exception ee)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//throw new Exception(ee.ToString());
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return false;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//throw new Exception("This virtual directory is already exist.");
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//µÃµ½Ò»¸öÐéÄâĿ¼
¡¡¡¡¡¡¡¡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;
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡//¸üÐÂÒ»¸öÐéÄâĿ¼
¡¡¡¡¡¡¡¡public void Update(VirtualDirectory dir)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡//ÅжÏÐèÒª¸ü¸ÄµÄÐéÄâĿ¼ÊÇ·ñ´æÔÚ
¡¡¡¡¡¡¡¡¡¡¡¡if(_virdirs.Contains(dir.Name))
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DirectoryEntry ode = rootfolder.Children.Find(dir.Name,"IIsWebVirtualDir");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡UpdateDirInfo(ode,dir);
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//throw new Exception("This virtual directory is not exists.");
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡¡¡//ɾ³ýÒ»¸öÐéÄâĿ¼
¡¡¡¡¡¡¡¡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);
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡¡¡public void Close()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_virdirs.Clear();
¡¡¡¡¡¡¡¡¡¡¡¡_virdirs = null;
¡¡¡¡¡¡¡¡¡¡¡¡rootfolder.Dispose();
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//Á¬½Ó·þÎñÆ÷
¡¡¡¡¡¡¡¡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];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡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;
¡¡¡¡¡¡¡¡}
¡¡¡¡}
¡¡¡¡/// <summary>
¡¡¡¡/// VirtualDirectoryÀà
¡¡¡¡/// </summary>
¡¡¡¡public class VirtualDirectory
¡¡¡¡{
¡¡¡¡¡¡¡¡private bool _read,_execute,_script,_ssl,_write,_authbasic,_authntlm,_indexed,_endirbrow,_endefaultdoc;
¡¡¡¡¡¡¡¡private string _ausername,_auserpass,_name,_path;
¡¡¡¡¡¡¡¡private int _flag;
¡¡¡¡¡¡¡¡private string _defaultdoc;
¡¡¡¡¡¡¡¡/// <summary>
¡¡¡¡¡¡¡¡/// ¹¹Ô캯Êý
¡¡¡¡¡¡¡¡/// </summary>
¡¡¡¡¡¡¡¡public VirtualDirectory()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡SetValue();
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡public VirtualDirectory(string sVirDirName)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡SetValue();
¡¡¡¡¡¡¡¡¡¡¡¡_name = sVirDirName;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡// sVirDirName£ºÐéÄâ·¾¶;
¡¡¡¡¡¡¡¡// strPhyPath£º ÎïÀí·¾¶( physics Path)
¡¡¡¡¡¡¡¡public VirtualDirectory(string sVirDirName,string strPhyPath,string[] AnonymousUser)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡SetValue();
¡¡¡¡¡¡¡¡¡¡¡¡_name = sVirDirName;
¡¡¡¡¡¡¡¡¡¡¡¡_path = strPhyPath;
¡¡¡¡¡¡¡¡¡¡¡¡_ausername = AnonymousUser[0];
¡¡¡¡¡¡¡¡¡¡¡¡_auserpass = AnonymousUser[1];
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡private void SetValue()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡_read = true;_execute = false;_script = true;_ssl= false;_write=false;_authbasic=false;
¡¡¡¡¡¡¡¡¡¡¡¡_authntlm=true;_indexed = true;_endirbrow=false;_endefaultdoc = true;
¡¡¡¡¡¡¡¡¡¡¡¡_flag = 1;
¡¡¡¡¡¡¡¡¡¡¡¡_defaultdoc = "default.htm,default.aspx,default.asp,index.htm";
¡¡¡¡¡¡¡¡¡¡¡¡_path = "C:\\";
¡¡¡¡¡¡¡¡¡¡¡¡_ausername = "IUSR_DEVE-SERVER";_auserpass ="IUSR_DEVE-SERVER";_name="";
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡///<summary>
¡¡¡¡¡¡¡¡///¶¨ÒåÊôÐÔ,IISVirtualDirÌ«¶àÊôÐÔÁË
¡¡¡¡¡¡¡¡///ÎÒÖ»¸ãÁ˱ȽÏÖØÒªµÄһЩ£¬ÆäËüµÄ´ó»ïÐèÒªµÄ×Ô¸ö¼Ó°É¡£
¡¡¡¡¡¡¡¡///</summary>

¡¡¡¡¡¡¡¡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 AnonymousUserName
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡get{ return _ausername;}
¡¡¡¡¡¡¡¡¡¡¡¡set{ _ausername = value;}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡public string AnonymousUserPass
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡get{ return _auserpass;}
¡¡¡¡¡¡¡¡¡¡¡¡set{ _auserpass = value;}
¡¡¡¡¡¡¡¡}
¡¡¡¡}

¡¡¡¡/// <summary>
¡¡¡¡/// ¼¯ºÏVirtualDirectories
¡¡¡¡/// </summary>
¡¡¡¡public class VirtualDirectories : System.Collections.Hashtable
¡¡¡¡{
¡¡¡¡¡¡¡¡public VirtualDirectories()
¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//Ìí¼Óеķ½·¨
¡¡¡¡¡¡¡¡public VirtualDirectory Find(string strName)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡return (VirtualDirectory)this[strName];
¡¡¡¡¡¡¡¡}
¡¡¡¡}
}

±¾ÎĵØÖ·£ºhttp://com.8s8s.com/it/it7480.htm