2398///***********************************************************
///************** 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
{
/// <summary>
/// IISManager 的摘要说明。
/// </summary>
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;
}
/// <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];
}
}
}
附:IIS的站点属性(详细内容,请查阅IIS帮助)
Read only properties of W3SVC/1/Root: // 只读属性
AppIsolated = 2 属性指出应用程序是在进程内、进程外还是在进程池中运行。值 0 表示应用程序在进程内运行,值 1 表示进程外,值 2 表示进程池。
AppPackageID = 为事务提供 COM+ 应用程序标识符 (ID)。此 ID 在由组件服务管理的所有事务中使用。
AppPackageName = 为事务提供 COM+ 应用程序名。
AppRoot = /LM/W3SVC/1/ROOT 包含到应用程序根目录的配置数据库路径。
Caption = 提供对象的一段简短文本描述(一行字符串)。
Description = 提供对象的一段较长文本描述。
InstallDate = 表示安装对象的时间。缺少值并不表示对象没有安装。
Name = W3SVC/1/ROOT 定义了用来识别对象的标签。创建子类时,可以将 Name 属性改写为 Key 属性。
Status = 表示对象当前状态。各种可操作的和不可操作的状态都可以被定义。可操作的状态为“正常”、“已降级”和“预见故障”。“预见故障”表示一个组件可能运行正常但预计很快会出现故障。例如,启用 SMART 的硬盘。还可指定不可操作的状态。这些状态为“错误”、“启动”、“停止”和“服务”。后者(即“服务”)可用于磁盘镜像过程、重新加载用户权限列表或其他管理作业。并不是所有这类作业都联机;所以,被管理的组件不是“正常”状态或处于任何其他状态。
Read/Write properties of W3SVC/1/Root: // 可读/可写
AccessExecute = False 值 true 表示不论文件类型是什么,文件或文件夹的内容都可以执行。
AccessFlags = 513 包含有用于配置文件访问权限的标志
AccessNoPhysicalDir = False
AccessNoRemoteExecute = False 值 true 表示拒绝远程请求执行应用程序;如果将 AccessExecute 属性设置为 true,只有来自 IIS 服务器所在的相同计算机的请求才会成功。您不能将 AccessNoRemoteExecute 设置为 false 来启用远程请求,或将 AccessExecute 设置为 false 来禁止本地请求。
AccessNoRemoteRead = False 值 true 表示拒绝远程请求查看文件;如果将 AccessRead 属性设置为 true,只有来自 IIS 服务器所在的相同计算机的请求才会成功。您不能将 AccessNoRemoteRead 设置为 false 来启用远程请求,或将 AccessRead 设置为 false 来禁止本地请求。
AccessNoRemoteScript = False 值 true 表示拒绝远程请求查看动态内容;如果将 AccessScript 属性设置为 true,只有来自 IIS 服务器所在的相同计算机的请求才会成功。您不能将 AccessNoRemoteScript 设置为 false 来启用远程请求,或将 AccessScript 设置为 false 来禁止本地请求。
AccessNoRemoteWrite = False 值 true 表示拒绝远程请求创建或更改文件;如果将 AccessWrite 属性设置为 true,只有来自 IIS 服务器所在的相同计算机的请求才会成功。您不能将 AccessNoRemoteWrite 设置为 false 来启用远程请求,或将 AccessWrite 设置为 false 来禁止本地请求。
AccessRead = True 值 true 表示可通过 Microsoft Internet Explorer 读取文件或文件夹的内容。
AccessScript = True 值 true 表示如果是脚本文件或静态内容,则可以执行文件或文件夹的内容。值 false 只允许提供静态文件,如 HTML 文件。
AccessSource = False 值 true 表示如果设置了读取或写入权限,则允许用户访问源代码。源代码包括 Microsoft® Active Server Pages (ASP) 应用程序中的脚本。
AccessSSL = False 值 true 表示文件访问需要带有或不带有客户端证书的 SSL 文件权限处理。
AccessSSL128 = False 值 true 表示文件访问需要至少 128 位密钥、带有或不带有客户端证书的 SSL 文件权限处理。
AccessSSLFlags = 0 默认值 0 表示未设置任何 SSL 权限。
AccessSSLMapCert = False 值 true 表示 SSL 文件权限处理将客户端证书映射到 Microsoft Windows® 操作系统的用户帐户上。要实现映射,必须将 AccessSSLNegotiateCert 属性设置成 true。
AccessSSLNegotiateCert = False 值 true 表示 SSL 文件访问处理从客户端请求证书。值 false 表示如果客户端没有证书,仍可继续访问。如果服务器请求证书但证书不可用(即使也将 AccessSSLRequireCert 设成 true),某些版本的 Internet Explorer 将关闭连接。
AccessSSLRequireCert = False 值 true 表示 SSL 文件访问处理从客户端请求证书。如果客户端没有提供证书,连接会关闭。当使用 AccessSSLRequireCert 时,必须将 AccessSSLNegotiateCert 设成 true。
AccessWrite = False 值 true 表示允许用户将文件及其相关属性上载到服务器上已启用的目录中,或者更改可写文件的内容。只有使用支持 HTTP 1.1 协议标准的 PUT 功能的浏览器,才能执行写入操作。
AdminACLBin = 由 Microsoft® Exchange Server 使用
AnonymousPasswordSync = True 指出 IIS 是否应该为试图访问资源的匿名用户处理用户密码。下表列出了该属性行为的详细说明:如果将 AnonymousPasswordSync 设置为 false,管理员必须手动设置匿名用户密码的 AnonymousUserPass 属性;否则匿名访问将无法正常工作。 如果将 AnonymousPasswordSync 设置为 true,将由 IIS 设置匿名用户密码。 如果将 AnonymousPasswordSync 设置为 true 并且配置数据库属性 AllowAnonymous 值为 false,则不允许任何用户登录到 FTP 服务器。
AnonymousUserName = IUSR_COMPUTERNAME 指定用来验证匿名用户的已注册的本地用户名。服务器将每个服务器操作与用户名和密码关联起来。
AnonymousUserPass = XXXXXXXXXXXX 指定用来验证匿名用户的已注册的本地用户密码。服务器将每个服务器操作与用户名和密码关联起来。
AppAllowClientDebug = False 指定是否允许客户端调试。该属性与应用于服务器端调试的 AppAllowDebugging 无关。
AppAllowDebugging = False 指定是否允许在服务器上进行 ASP 调试。该属性与应用于客户端调试的 AppAllowClientDebug 属性无关。
AppFriendlyName = 默认应用程序 软件包或应用程序的用户好记名称
AppOopRecoverLimit = -1 进程外应用程序在出现故障后重新启动的最大次数。服务器不会响应超出该范围的组件请求。该属性不适用于进程内运行的应用程序或扩展。
AppPoolId = ASP.NET V2.0 应用程序在其中路由的应用程序池
AppWamClsid = 为应用程序的 Web 应用程序管理 (WAM) 接口提供类 ID
AspAllowOutOfProcComponents = True 在 IIS 4.0 中,AspAllowOutOfProcComponents 属性指定是否允许 ASP 脚本调用进程外组件,这些组件是在应用程序内启动的可执行程序。在 IIS 5.0 中,该属性已过时,并且属性值将被忽略。但是,使用该属性的脚本仍然可以正常运行。
AspAllowSessionState = True 启用 ASP 应用程序会话状态持续性。如果将该值设置为 true,那么服务器将为每个连接创建 Session 对象,可访问会话状态,允许会话存储,出现 Session_OnStart 和 Session_OnEnd 事件,并且发送 ASPSessionID Cookie 到客户端。如果将该值设置为 false,那么不允许状态访问和存储,事件将不进行处理,并且也不发送 Cookie。
AspAppServiceFlags = 0 包含在 IIS 应用程序上启用 COM+ 服务所必须要设置的标志
AspBufferingLimit = 4194304 设置 ASP 缓冲区的最大大小。如果启动了响应缓冲,该属性将控制在进行刷新前 ASP 页面可以向响应缓冲区写入的最大字节数
AspBufferingOn = True ASP 应用程序的输出是否需要缓冲
AspCalcLineNumber = True ASP 是否计算和存储已执行代码的行号,以便在错误报告中提供
AspCodepage = 0 为应用程序指定默认的代码页
AspDiskTemplateCacheDirectory = %windir%\system32\inetsrv\ASP Comp 目录的名称,该目录是 ASP 在存储器内的缓存溢出后,用来将已编译的 ASP 模板存储到磁盘的目录
AspEnableApplicationRestart = True 确定 ASP 应用程序能否自动重新启动
AspEnableAspHtmlFallback = False 当由于请求队列已满而拒绝新的请求时,AspEnableAspHtmlFallback 属性控制 ASP 的行为。将该属性设置为 true,将导致发送与请求的 .asp 文件名称类似的 .htm 文件(如果存在),而不是发送 .asp 文件。.htm 文件的命名约定是 .asp 文件名之后附加一个 _asp。例如,.asp 文件是 hello.asp,那么 .htm 文件应该是 hello_asp.htm。
AspEnableChunkedEncoding = True 指定是否为万维网发布服务(WWW 服务)启动 HTTP 1.1 chunked 传输编码
AspEnableParentPaths = False 页面是否允许当前目录的相对路径(使用 ..\ 表示法)。
AspEnableSxs = False 值 true 将启动 COM+ 并排集合,该程序集允许 ASP 应用程序指定要使用哪个版本的系统 DLL 或传统 COM 组件,例如 MDAC、MFS、MSVCRT、MSXML 等等。
AspEnableTracker = False 值 true 将启动 COM+ 跟踪器,管理员或开发人员可用其来调试 ASP 应用程序。
AspEnableTypelibCache = True 是否在服务器上缓存类型库
AspErrorsToNTLog = False 是否将 IIS 脚本错误写入到 Windows 事件日志中
AspExceptionCatchEnable = True 页面是否捕获组件产生的异常。如果设置为 false (或者禁用),那么 Microsoft 脚本调试程序工具将不捕捉所调试的组件发生的异常。
AspExecuteInMTA = 0 ASP 能够在一个多线程单元 (MTA) 中运行其全部线程。如果 COM 组件主要是自由线程或双线程组件,则将 ASP 线程作为 MTA 运行可显著改善性能。默认情况下,AspExecuteInMTA 属性设置为 0,这意味着 ASP 不在 MTA 中执行。在应用程序级别上将该属性设置为 1 可以使 ASP 在 MTA 中运行。
AspKeepSessionIDSecure = 0 启用 AspKeepSessionIDSecure 属性后,它可以确保将 SessionID 作为安全 Cookie 发送(如果已在安全通道上分配的话)。
AspLCID = 2048 用程序指定默认的区域设置标识符 (LCID)。
AspLogErrorRequests = True 控制 Web 服务器是否将失败的客户请求写入到 Windows 事件日志文件中
AspMaxDiskTemplateCacheFiles = 2000 指定存储已编译 ASP 模板的最大数量。存储已编译模板的目录由 AspDiskTemplateCacheDirectory 属性配置。
AspMaxRequestEntityAllowed = 204800 指定一个 ASP 请求的实体正文中允许的最多字节数。
AspPartitionID = COM+ 分区用于将 Web 应用程序隔离到其各自的 COM+ 分区。COM+ 分区保存不同的自定义 COM 组件的版本。将 AspPartitionID 属性设置为 COM+ 分区的全局唯一标识符 (GUID)。同时,设置 AspAppServiceFlags 配置数据库属性的 AspUsePartition 标志。在应用程序级别设置这两个属性
AspProcessorThreadMax = 25 指定 IIS 可创建的每个处理器的最大工作线程数
AspQueueConnectionTestTime = 3 IIS 将所有的 ASP 请求放置到队列中。如果请求在队列中等待的时间比 AspQueueConnectionTestTime 属性指定的时间(以秒为单位)长,则 ASP 将在执行请求前检查确定客户端是否仍是连接的。如果客户端已断开连接,则不处理该请求并且从队列中删除该请求。
AspQueueTimeout = -1 允许 ASP 脚本请求在队列中等待的时间(以秒为单位)。无穷大表示为 -1。
AspRequestQueueMax = 3000 允许进入队列的并发 ASP 请求的最大数目。在队列占满时,任何试图请求 ASP 文件的客户端浏览器都将收到 HTTP 500“服务器太忙”的错误。
AspRunOnEndAnonymously = True 指定了 SessionOnEnd 和 ApplicationOnEnd 全局 ASP 函数是否应该作为匿名用户运行
AspScriptEngineCacheMax = 250 页面将在内存中保持缓存的脚本引擎的最大数目
AspScriptErrorMessage = 处理 URL 时服务器出错。请与系统管理员联系。 特殊调试错误没有被发送到客户端时(如果将 AspScriptErrorSentToBrowser 设置成 false)将发送给浏览器的错误消息
AspScriptErrorSentToBrowser = True Web 服务器是否将调试细节(文件名、错误、行号、描述)写到客户端浏览器,并且记录到 Windows 事件日志中
AspScriptFileCacheSize = 500 要缓存的预编译脚本文件数。如果设置为 0,则不缓存任何脚本文件
AspScriptLanguage = VBScript 运行在 Web 服务器上的所有 ASP 应用程序的默认脚本语言
AspScriptTimeout = 90 AspScriptTimeout 属性指定了在终止脚本和将事件写入 Windows 事件日志之前,ASP 页面允许的脚本运行时间的默认值(以秒为单位)。
AspSessionMax = -1 IIS 允许的最大并发会话数。当达到该限制时,如果客户端试图与 IIS 建立新连接,则客户端将接收到错误信息(HTTP 500“服务器太忙”)。无穷大表示为 -1。
AspSessionTimeout = 20 完成最后的与 Session 对象相关的请求后,保留该对象的时间(以分钟为单位)。
AspSxsName = 启动并行 (SxS) 程序集。并行 (SxS) 程序集允许 ASP 应用程序指定要使用哪个版本的系统 DLL 或传统 COM 组件,例如 MDAC、MFS、MSVCRT、MSXML 等。
AspTrackThreadingModel = False IIS 是否检查应用程序创建的任意组件的线程模块。
AspUsePartition = False 值 true 将启动 COM+ 分区,可用其将 Web 应用程序隔离到各自的 COM+ 分区。COM+ 分区可拥有不同的自定义 COM 组件的版本。如果设置该标志,请同时设置 AspPartitionID 配置数据库属性。
AuthAdvNotifyDisable = True 禁用密码到期预先通知
AuthAnonymous = True 指定匿名身份验证作为可能的 Windows 验证方案之一,返回给客户端作为有效验证方案。
AuthBasic = False 指定基本身份验证作为可能的 Windows 验证方案之一,返回给客户端作为有效验证方案。
AuthChangeDisable = True 禁止更改密码
AuthChangeUnsecure = False 允许在不安全端口更改密码
AuthChangeURL = /iisadmpwd/achg.asp 用户输入新密码时被调用的 URL
AuthExpiredUnsecureURL = /iisadmpwd/aexp3.asp 用户密码到期时调用的 URL
AuthExpiredURL = /iisadmpwd/aexp.asp 用户密码到期时调用的 URL。将以安全的 (HTTPS) 方式调用它。
AuthFlags = 5 作为有效方案返回给客户端的 Windows 验证方案的设置
AuthMD5 = False 指定摘要式身份验证和高级摘要式身份验证作为可能的 Windows 验证方案之一,返回给客户端作为有效验证方案。
AuthNotifyPwdExpUnsecureURL = /iisadmpwd/anot3.asp 包含一个特定的 URL:如果用户的密码在 PasswordExpirePreNotifyDays 中指定的天数前到期,则调用该 URL。
AuthNotifyPwdExpURL = /iisadmpwd/anot.asp 包含一个特定的 URL:如果用户的密码在 PasswordExpirePreNotifyDays 中指定的天数前到期,则调用该 URL。将以安全的 (HTTPS) 方式调用它。
AuthNTLM = True 指定集成 Windows 身份验证(也称作质询/响应或 NTLM 验证)作为可能的 Windows 验证方案之一,返回给客户端作为有效验证方案。
AuthPassport = False true 的值表示启用了 Microsoft® .NET Passport 身份验证
AuthPersistence = 64 指定了使用 NTLM 验证跨越连接上的请求时的验证持久性
AuthPersistSingleRequest = True 将该标志设置成 true 指定验证仅对一个连接上的单个请求持久。IIS 在每个请求的末尾重设验证,并且在会话的下一个请求上强制执行重验证。
AzEnable = False 用于虚拟目录、应用程序,或配置数据库中项相应的 URL 的 URL 授权。
AzImpersonationLevel = 0 用于应用程序的模拟行为,该模拟行为允许配置 Web 应用程序模拟客户端用户、IIS 工作进程,或工作进程的 IUSER_* 帐户。
AzScopeName = 将虚拟目录、应用程序或 URL 与作用域相关联。如果没有指定作用域或指定了空子符串,则使用 IIS 6.0 URL 授权的默认作用域。
AzStoreName = 授权管理器策略存储与虚拟目录、应用程序或 URL 相关联。
CacheControlCustom = 指定了自定义 HTTP 1.1 缓存控制指令。
CacheControlMaxAge = 0 指定了 HTTP 1.1 缓存控制最大时间值。
CacheControlNoCache = False 保护缓存内容的 HTTP 1.1 指令
CacheISAPI = True 在第一次使用 ISAPI 扩展后是否在内存中进行缓存。
Caption = 提供对象的一段简短文本描述(一行字符串)。
CGITimeout = 300 指定 CGI 应用程序超时(以秒为单位)。
ContentIndexed = True 指定安装的目录索引程序是否应该检索该目录树下的内容。
CreateCGIWithNewConsole = False 指示 CGI 应用程序是否在自己的控制台上运行。
CreateProcessAsUser = True 是在系统环境中创建 CGI 进程还是在请求用户环境中创建 CGI 进程。
DefaultDoc = index.aspx,default.aspx 包含一个或多个默认文档的文件名,如果在客户端的请求中不包含文件名,将把默认文档的文件名返回给客户端。
DefaultDocFooter = 附加到返回到客户端的 HTML 文件的自定义页脚(页脚并不附加到 ASP 文件)。
DefaultLogonDomain = 服务器用来对用户进行身份验证的默认域(在 UserIsolationMode = 2 的 Web 宿主方案中)。
Description = 提供对象的一段较长文本描述。
DirBrowseFlags = 1073741886 可以提供多少目录和文件信息(如果启用浏览)以及目录中是否包含默认页的标记。
DirBrowseShowDate = True 设置为 true 时,浏览目录时将显示日期信息。
DirBrowseShowExtension = True 设置为 true 时,浏览目录时将显示文件扩展名。
DirBrowseShowLongDate = True 设置为 true 时,显示目录时将在扩展格式中显示日期信息。
DirBrowseShowSize = True 设置为 true 时,浏览目录时将显示文件大小信息。
DirBrowseShowTime = True 设置为 true 时,显示目录时将显示文件时间信息。
DisableStaticFileCache = False 目录的静态文件缓存
DoDynamicCompression = False 与 HcDoDynamicCompression 属性相同。
DontLog = False 是否将客户端的请求写入日志文件。
DoStaticCompression = False 与 HcDoStaticCompression 属性相同。
EnableDefaultDoc = True 设置为 true 时,浏览目录时系统会加载该目录的默认文档(由 DefaultDoc 属性指定)。
EnableDirBrowsing = False 设置为 true 时,将启用目录浏览。
EnableDocFooter = False 启用或禁用由 DefaultDocFooter 属性指定的自定义页脚。
EnableReverseDns = False 启用或禁用万维网发布服务(WWW 服务)的反向域名服务器 (DNS) 查找。
FrontPageWeb = True 服务器实例是否由 Microsoft® FrontPage® 处理。
HttpExpires = D, 0x15180 在返回给浏览器的 HTML 文件标头中指定数值,来指定 HTML 文档的过期时间。
HttpRedirect = 当客户端试图访问特定资源时,重定向到的目录或 URL。
LogonMethod = 3 指定明文登录的登录方法的整数。
MaxRequestEntityAllowed = -1 请求实体正文中允许的最大字节数。无穷大表示为 -1。
Name = W3SVC/1/ROOT 定义了用来识别对象的标签。创建子类时,可以将 Name 属性改写为 Key 属性。
NTAuthenticationProviders = 以逗号分隔的 Windows 身份验证提供程序列表,例如集成 Windows 身份验证(也称为 NTLM)。
PassportRequireADMapping = 1 IIS 如何处理 Microsoft .NET Passport 验证和 Active Directory 映射。
PasswordChangeFlags = 6 控制服务器和客户端之间密码到期及密码更改处理的标志。默认值 0 表示需要 SSL 连接;1 表示允许在非安全端口进行更改;2 表示禁止更改;4 表示禁用密码到期通知。
PasswordExpirePrenotifyDays = 0 距离客户端密码到期时间的天数,还显示发送密码预先通知消息的时间。
Path = D:\XXXX\XXXXX\XXXXX 与虚拟目录关联的物理路径。
PoolIdcTimeout = 0 Internet 数据库连接池的超时值(秒)。值 0 表示未执行任何池。
Realm = IIS 用来验证客户端的领域,该客户端试图访问由摘要式身份验证或高级摘要式身份验证保护的资源。
SettingID = 由已知 CIM_Setting 对象指定了标识。
ShutdownTimeLimit = 90 在达到回收阈值后,IIS 应等待多长时间(以秒为单位)以便所有旧请求在工作进程结束之前完成运行。
SSIExecDisable = False 是否禁用此路径下的在服务器端的包含文件 (SSI) #exec 指令。
UNCPassword = 在获取 UNC(通用命名约定)虚拟根访问权限时使用的加密密码
UNCUserName = 为通用命名约定 (UNC) 虚拟根指定用户名
UploadReadAheadSize = 49152 确定 Web 服务器读入缓冲区并传递到 ISAPI 扩展的字节数。
UseDigestSSP = False 由高级摘要式身份验证用来在摘要式或高级摘要式安全支持提供程序接口 (SSPI) 代码之间切换。
WebDAVMaxAttributesPerElement = 32 ??
Win32Error = 0 Microsoft Win32 错误状态代码