All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
菜鸟的最爱,.NET经典代码汇总(二)_.net资料_编程技术
PHP中的正则表达式_[PHP教程]
AJAX将成为移动Web2.0时代首选开发平台_[AJAX教程]
开发环境下优化SQl语句的十个重要步骤_mssql学习_编程技术
C#提交数据到服务器并返回的处理_.net资料_编程技术
深入ASP.NET数据绑定(中)——数据双向绑定机理_[Asp.Net教程]
PHP实例教程:PHP实现文件安全下载的程序_php资料_编程技术
ASP.NET,2.0中客户端脚本总结_[Asp.Net教程]
ASP.NET中为GridView添加删除确认提示框_[Asp.Net教程]
高度100%的绝对定位自适应布局技巧_[Html教程]
Reading number is top 10 pictures
再来随便发几张
传销的好处
传几朵花
Distribution of wealth in China survey status report
The girl of like self-time
运动的范冰冰3
好身材能把衣服穿出3D效果
30 beautiful school beauty5
贩卖儿童者必须判死刑
Sora aoi on twitter4
Download software ranking
Prostitutes diary
Twenty piece of palm leaf
Red cliff
Tram sex maniac 2 (H) rar bag16
Unix video tutorial11
塘西风月痕
WebService在.NET中的实战应用教学视频 → 第3集
Desire a peach blossom
The Bermuda triangle2
Love the forty days
delv published in(发表于) 2014/1/16 9:27:19 Edit(编辑)
.Net中如何操作IIS(源代码)_[Asp.Net教程]

.Net中如何操作IIS(源代码)_[Asp.Net教程]

.Net中如何操作IIS(源代码)_[Asp.Net教程]

// ************** IIS控制管理类 1.0 Beta **************
// ************** Author: 飞刀 **************
// ************** http://www.aspcn.com **************
// ************** feidao@aspcn.com **************
// ************** 2002.05.25 世界杯前6 天 **************


using System;
using System.Data;
using System.DirectoryServices;
using System.Collections;
namespace Aspcn.Management
{
///


/// IISManager 的摘要说明。
///

public class IISManager
{
//定义需要使用的
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;
}
///
/// 定义公共属性
///


//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; }
}
///


///定义公共方法
///


//连接服务器
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);
}


///


///私有方法
///


//连接服务器
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;
}


}
///


/// VirtualDirectory类
///

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;
///
/// 构造函数
///

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 = "";
}
///
///定义属性,IISVirtualDir太多属性了
///我只搞了比较重要的一些,其它的大伙需要的自个加吧。
///


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; }
}
}
///


/// 集合VirtualDirectories
///


public class VirtualDirectories : System.Collections.Hashtable
{
public VirtualDirectories()
{
}
//添加新的方法
public VirtualDirectory Find(string strName)
{
return (VirtualDirectory) this[strName];
}
}
}


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.