亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#代碼操作IIS之虛擬目錄

2019-11-18 19:11:33
字體:
來源:轉載
供稿:網友

網上找到自己實驗,并整理了一下:

整個后臺文件如下:

using System;
using System.Data;
using System.DirectoryServices;
using System.Collections;
using System.Threading;
namespace aspcn.Management
{
/// <summary>
/// IISManager 的摘要說明。
/// </summary>
public class IISManager
{
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
IISManager test = new IISManager();
test.Connect();
VirtualDirectory vd = new VirtualDirectory();
vd.Path = @"c:/Inetpub/wwwroot/BKDEvd.Name = "BKDEIP/WEBUI/Mobile";

//if(test.Exists(vd.Name))  
//{
//test.Delete(vd.Name);
//}
//else
//{
//test.Create(vd);
//}
test.Create(vd);
}

//定義需要使用的
PRivate string _server,_website;
private VirtualDirectories _virdirs;
protected System.DirectoryServices.DirectoryEntry rootfolder;
private bool _batchflag;
public IISManager()
{
//默認情況下使用localhost,即訪問本地機
_server = "localhost";
_website = "1";
_batchflag = false;
}
public IISManager(string strServer)
{
_server = strServer;
_website = "1";
_batchflag = false;
}
/// <summary>
/// 定義公共屬性
/// </summary>

//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 void 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);
}
catch(Exception ee)
{
throw new Exception(ee.ToString());
}
}
else
{
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);
}
 
///<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];
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 strVirDirName)
{
_name = strVirDirName;
SetValue();
}
private void SetValue()
{
_read = true;_execute = false;_script = false;_ssl= false;_write=false;_authbasic=false;_authntlm=false;
_indexed = false;_endirbrow=false;_endefaultdoc = false;
_flag = 1;
_defaultdoc = "default.htm,default.aspx,default.asp,index.htm";
_path = "C://";
_ausername = "";_auserpass ="";_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];
}
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品久久久久久久玫瑰园| 91国偷自产一区二区三区的观看方式| 国产91色在线免费| 成人高清视频观看www| 亚洲第一av网| 亚洲男人的天堂网站| 51精品在线观看| 91免费福利视频| 日韩精品中文在线观看| 久久香蕉精品香蕉| 亚洲性视频网址| 国产极品精品在线观看| 国产精品一区二区久久| 欧亚精品在线观看| 欧美成人激情视频免费观看| 7777kkkk成人观看| 一本一本久久a久久精品牛牛影视| 在线电影欧美日韩一区二区私密| 精品视频在线播放免| 国产日韩精品在线播放| 91国产美女在线观看| 午夜免费在线观看精品视频| 91免费精品视频| 欧美日韩国产在线看| 精品美女永久免费视频| 国产精品丝袜久久久久久不卡| 精品国产一区二区三区久久狼黑人| 亚洲精品久久久久久久久久久| 久久亚洲一区二区三区四区五区高| 欧美日韩亚洲天堂| 色噜噜久久综合伊人一本| 国产精品嫩草影院一区二区| 欧美亚洲第一区| 精品久久中文字幕| 国产一区二区三区高清在线观看| 国产精品欧美激情| 国产精品视频一区国模私拍| 久久久久国产精品免费网站| 啊v视频在线一区二区三区| 日韩经典第一页| 欧美在线视频免费| 一本大道亚洲视频| 国产精品欧美一区二区| 日韩av在线免费| 亚洲精品一区二三区不卡| 色多多国产成人永久免费网站| 日日摸夜夜添一区| 国产成人在线播放| 国产精品九九久久久久久久| 日韩激情视频在线| 日韩精品中文字幕视频在线| 亚洲影视九九影院在线观看| 97成人超碰免| 亚洲免费一在线| 亚洲一区二区三区xxx视频| 91国产精品视频在线| 久久精品成人一区二区三区| 亚洲精品国产精品自产a区红杏吧| 国产精品99一区| 中文字幕久久亚洲| 成人免费视频在线观看超级碰| 成人97在线观看视频| 国产精品观看在线亚洲人成网| 久久91精品国产91久久跳| 日韩精品免费综合视频在线播放| 色偷偷91综合久久噜噜| 日韩有码片在线观看| 中文字幕九色91在线| 成人有码视频在线播放| 国产成人一区二区在线| 欧美在线视频观看免费网站| 欧美激情精品久久久久久大尺度| 91精品久久久久久久久中文字幕| 精品国产一区久久久| 中文字幕精品www乱入免费视频| 成人黄色短视频在线观看| 久久久久久久久国产精品| 日韩欧美高清视频| 欧美精品一区二区免费| 亚洲午夜性刺激影院| 久久91精品国产91久久久| 视频在线观看99| 91色视频在线导航| 亚洲天堂网站在线观看视频| 中文在线资源观看视频网站免费不卡| 亚洲品质视频自拍网| 欧美黄色三级网站| 久久久久北条麻妃免费看| 欧洲精品毛片网站| 日韩精品免费在线播放| 精品久久久久久电影| 欧美网站在线观看| 中文字幕日韩有码| 欧美电影在线观看网站| 综合网日日天干夜夜久久| 亚洲欧洲国产一区| 成人免费看吃奶视频网站| 精品美女久久久久久免费| 国产亚洲xxx| 综合136福利视频在线| 精品调教chinesegay| 中文字幕少妇一区二区三区| 欧美一级高清免费| 欧美色道久久88综合亚洲精品| 91高清视频在线免费观看| 久久人人爽人人爽人人片av高清| 神马久久久久久| 国产做受69高潮| 国产精品久久久久久影视| 午夜剧场成人观在线视频免费观看| 久久久国产精品亚洲一区| 国产在线观看精品一区二区三区| 精品视频久久久久久久| 国产成人在线精品| 欧美久久精品午夜青青大伊人| 自拍偷拍亚洲欧美| 国产精品永久免费观看| 国产伦精品一区二区三区精品视频| 在线成人激情黄色| 国产精品一区电影| 精品精品国产国产自在线| 欧美性理论片在线观看片免费| 亚洲欧美日韩精品久久亚洲区| 免费97视频在线精品国自产拍| 亚洲娇小xxxx欧美娇小| 4p变态网欧美系列| 日韩av一区在线| 国产精品你懂得| 97免费在线视频| 大荫蒂欧美视频另类xxxx| 2019中文在线观看| 国产精品一区二区三区免费视频| 亚洲精品中文字幕有码专区| 日韩精品在线观看一区二区| 在线视频欧美日韩| 97视频在线观看成人| 最近2019中文字幕一页二页| 在线看日韩av| 欧美天天综合色影久久精品| 日韩激情视频在线播放| 国产+成+人+亚洲欧洲| 国产精品欧美风情| 国产欧美一区二区| 日韩欧美视频一区二区三区| 69久久夜色精品国产69| 91在线精品播放| 美女av一区二区三区| 日韩第一页在线| 久久国产精彩视频| 亚洲欧美精品在线| 精品久久久久久久大神国产| 欧美日韩加勒比精品一区| 欧美国产日韩精品| 色综合影院在线| 亚洲欧美日韩天堂一区二区| 成人国产精品一区| 欧美乱人伦中文字幕在线| 欧美影院久久久| 青草成人免费视频| yellow中文字幕久久| 97在线视频免费观看| 国产精品视频xxx| 亚洲视频一区二区三区| 91产国在线观看动作片喷水|