LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

DirectoryEntry.Properties遍历IIS属性

admin
2021年6月26日 23:38 本文热度 2800

一.平台:Windows XP SP3+ IIS 5.1 + Visual Studio 2005

.NET框架下,System.DirectoryServices命名空间中的DirectoryEntry提供了活动目录组件管理功能,它调用ADSI操作IIS

二.DirectoryEntry.Properties遍历IIS Web虚拟目录和Ftp虚拟目录属性

using System;

using System.Collections.Generic;

using System.Text;

using System.DirectoryServices;

 

namespace IISVirDirProperties

{

    class Program

    {

        static void Main(string[] args)

        {

            try

            {

                Console.WriteLine("请输入欲查询的虚拟目录类型:");

                Console.WriteLine("0代表IIS Web虚拟目录");

                Console.WriteLine("1代表IIS FTP虚拟目录");

 

                string SVCType, VirDirType;

                string strVirDirType  = Console.ReadLine();

 

                if(strVirDirType == "0")

                {

                    SVCType = "W3SVC";

                    VirDirType = "IIsWebVirtualDir";

                }

                else if(strVirDirType == "1")

                {

                    SVCType = "MSFTPSVC";

                    VirDirType = "IIsFtpVirtualDir";

                }

                else

                {

                    Console.WriteLine("输入有误,只能输入01");

                    Console.ReadKey();

                    return;

                }

 

                string RootPath = "IIS://localhost/" + SVCType + "/1/ROOT";

                DirectoryEntry RootDE = new DirectoryEntry(RootPath);

                DirectoryEntry DE = null;

 

                Console.WriteLine("请输入欲查询的虚拟目录名称:");

                string strVirDir = Console.ReadLine();

               

                if(string.IsNullOrEmpty(strVirDir)) // 为空,查询默认站点

                {

                    DE = RootDE;

                    Console.WriteLine("默认站点的属性如下:\n");

                }

                else // 非空,查询具体站点

                {

                    string WebSitePath = RootPath + "/" + strVirDir;

                    if(DirectoryEntry.Exists(WebSitePath))

                    {

                        DE = RootDE.Children.Find(strVirDir, VirDirType);

                        Console.WriteLine("默认站点|{0}属性如下:\n",strVirDir);

                    }

                    else

                    {

                        Console.WriteLine("你所查询的虚拟目录不存在!");

                        Console.ReadKey();

                        return;

                    }                   

                }

                foreach (string elmentName in DE.Properties.PropertyNames)

                {

                    PropertyValueCollection valueCollection = DE.Properties[elmentName];

                    for (int i = 0; i < valueCollection.Count; i++)

                    {

                        Console.WriteLine(elmentName + "[" + i.ToString() + "] =" + valueCollection[i].ToString());

                    }

                }

            }

            catch(Exception e)

            {

                Console.WriteLine(e.Message);

            }

 

            Console.ReadKey();

        }

    }

}

IIS6.0中,可右击网站(FTP站点)à默认网站(默认FTP站点)àtestà所有任务à将配置保存到一个XML文件,打开XML文件可以看到

<configuration> +<MBProperty></configuration>

其中MBPropertyMetaBase详细属性信息。


三.IIS属性解析

KeyType[0] =IisWebVirtualDir  // Schema类名表明操作的目录类型

// 【虚拟目录】

Path[0] =D:\WebSiteTest  // 虚拟目录|本地路径

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["Path"][0] = 路径字符串

 

AccessFlags[0] =513  // 虚拟目录|读取-写入

// 1. 虚拟目录|应用程序设置|执行权限为“无”时

// 1)脚本资源访问

// 不可读取且不可写入为16;可读取不可写入为17

// 可写入不可读取为18;可读取且可写入为19

// 2)无脚本资源访问

// 不可读取且不可写入为0;可读取不可写入为1

// 可写入不可读取为2;可读取且可写入为3

// 2. 虚拟目录|应用程序设置|执行权限为“纯脚本”时

// 1)脚本资源访问

// 不可读取且不可写入为528;可读取不可写入为529

// 可写入不可读取为530;可读取且可写入为531

// 2)无脚本资源访问

// 不可读取且不可写入为512;可读取不可写入为513

// 可写入不可读取为514;可读取且可写入为515

// 3. 虚拟目录|应用程序设置|执行权限为“脚本和可执行文件”时

// 1)脚本资源访问

// 不可读取且不可写入为532;可读取不可写入为533

// 可写入不可读取为534;可读取且可写入为535

// 2)无脚本资源访问

// 不可读取且不可写入为516;可读取不可写入为517

// 可写入不可读取为518;可读取且可写入为519

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["AccessRead"][0] = bool; // 读取

de.Properties["AccessWrite"][0] = bool// 写入

de.Properties["AccessScript"][0] = bool; // 脚本资源访问

de.Properties["AccessExecute"][0] = bool// 允许执行的权限,默认为纯脚本

 

de.Properties["AccessFlags"][0] = 如上枚举数值; // 访问标识

// AccessFlags属性值就是由AccessRead(1),AccessScript(512),AccessExecute(4) 等等的值// 相加而得来的。例如执行权限为“纯脚本”时,无脚本资源访问,可读取不可写入为513 =

// AccessScript(512) + //AccessRead(1)

// 执行权限为“脚本和可执行文件”时, AccessScript(517)

 

DirBrowseFlags[0] =-1073741762 //虚拟目录|目录浏览

// 当【文档】启用默认文档时为-1073741762,否则1073741886

// 当【文档】未启用默认文档时为-2147483586,否则为62

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["EnableDirBrowsing"][0] bool; // 目录浏览

 

DontLog[0] = False//虚拟目录|记录访问,否则True

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["DontLog"][0] bool; // 记录访问

 

ContentIndexed[0] =True//虚拟目录|索引资源,否则False

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["ContentIndexed"][0] = bool// 记录访问

 

AppFriendlyName[0] =Test //虚拟目录|应用程序设置|应用程序名

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["AppFriendlyName"][0] = 字符串// 应用程序名

 

AppRoot[0] =/LM/W3SVC/1/Root/test//虚拟目录|应用程序设置|开始位置:默认网站\test

AppIsolated[0] =2 //虚拟目录|应用程序设置|应用程序保护,低(IIS进程)为0,中(公用)// 2,高(独立)为1,默认为2:中(公用)

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["AppIsolated"][0] = 如上枚举数值;

 

//【自定义错误】

HttpErrors[0] =400,*,FILE,C:\WINDOWS\help\iisHelp\common\400.htm

……

HttpErrors[31] =500,100,URL,/iisHelp/common/500-100.asp

 

// 文档|启用默认文档,可手动添加首页。如果没有开启虚拟目录|目录浏览,又没有指定首// 页则访问站点出/HTTP403错误;只能在url中详细指定站点内具体网页文件名称。

DefaultDoc[0] = Default.htm,Default.asp,index.htm,iisstart.asp

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["EnableDefaultDoc"][0] bool//启用默认文档

 

// 【目录安全性】

//目录安全性|匿名访问和身份控制|编辑|身份验证方法|匿名访问

AnonymousPasswordSync[0] =True

//目录安全性|匿名访问和身份控制|编辑|身份验证方法|匿名访问使用的账户密码

AnonymousUserName[0] =IUSR_57E2088F08C14CC

AnonymousUserPass[0] =oEG'9bDK|S34\d

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["AuthAnonymous"][0] = bool// 允许匿名访问

de.Properties["AnonymousUserName"][0] = 账户字符串// 客户端访问Web服务器的匿名账户

de.Properties["AnonymousUserPass"][0] = 密码字符串// 客户端访问Web服务器的匿名账户密码

 

// “另一台计算机上的共享”(UNC|网络目录|连接用户|网络目录安全凭据

UNCUserName[0] =Administrator

UNCPassword[0] =123456

// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象

de.Properties["UNCUserName"][0] = 账户字符串// Web服务器桥接文件服务器的UNC账户

de.Properties["UNCPassword"][0] = 密码字符串// Web服务器桥接文件服务器的UNC账户密码

 

//ASP.NET

ScriptMaps[0] =.asp,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE

……

ScriptMaps[50] =.refresh,C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_is

api.dll,5,GET,HEAD,POST,DEBUG

// HTTP头】

// 自定义HTTP

HttpCustomHeaders[0] =X-Powered-By: ASP.NET

 

下图为IIS Metabase Explorer显示的IIS元数据(Metabase)的层次结构。


参考:

IIS权限设置

IIS Metabase Properties

http://msdn.microsoft.com/en-us/library/ms525644.aspx

DirectoryEntry.Properties属性的遍历》

http://blog.csdn.net/wenzhoufeng/archive/2007/05/15/1610017.aspx

IIS 配置数据库中AccessFlags属性的处理与应用》

http://blog.csdn.net/hbu_dcf/archive/2009/03/04/3955800.aspx

IIS 6新特性》

http://www.itlearner.com/article/2007/3706_2.shtm

IIS 5.1\IIS6\IIS7ASP.NET请求处理过程比较》

http://blog.joycode.com/ghj/archive/2008/07/25/115200.aspx

该文章在 2021/6/26 23:38:15 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved