ASP网站制作之利用ADSI创立假造目次
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。创立|假造目次你已经相经由过程VBS增加一个假造目次吗?(我想过~)主动创建ISAPI服务器扩大?大概创建一全部站点,包含权限?你能够用ADSI做这些和更多的事变.
ADSI(ActiveDirectoryServicesInterface)是一种使用程序数据接口.微软的操纵体系撑持ADS
I的有WindowsNT4.0Server,Exchange,IIS,和SiteServer.在WIN2K中ADSI将会成为操纵体系
的接口而且大概代替注册表.ADSI的关头其实不在于底层的数据存储,而在于它自已的接口层.用一个
接口,只需进修一次,你就能够设置一切的服务器程序.(是否是很爽啊,呵呵!)不像API,你可使用
一切的言语或情况来经由过程COM会见ADSI.(这是后话!)
告诫:
在运转本文章的例子之前,请先备份IIS4.0:
翻开MMC
(以下略往备份历程)
面向工具的数据库
ADSI对一切的数据都看成工具来对待.用ADSI你能够纯熟地操纵一切的数据而不必往学一种数据库
查询言语如SQL.相对一个干系型的数据库,创建一个面向工具的数据库要复杂和疾速一些.在一个
干系数据库中程序员不能不要晓得一个工具是怎样损坏和存储的;但是面向工具的数据存储,像ADSI
,不存在这些成绩.程序员只需晓得你想要会见的谁人工具的名字.
为了往对照这两种数据库范例,假想你要一个员工的材料:团体信息,部门信息,和薪水信息.在一个
干系数据库中,这三个数据大概会被分离放在三个表中.并且对数据库的一个变动大概只会影响到其
中的一部分表,对数据库的修正程序员不能不经由过程一种数据库查询言语如SQL.很罕用人往注重工具
是怎样被存储的(除数据库办理员).但是ADSI把一切的信息视为工具,工具之间的接洽恰是ADSI执
行的一部分,因而,这一部分就不再必要程序员处置了.一旦你学会了处置一种ADSI数据,你就学会了
处置一切的ADSI数据库.作为一个对照,你大概必要进修每种干系数据库言语假如你要用分歧的数
据库的话.(像FOXPRO)
数据布局
数据库布局是一个分级的模子.一个工具节点能够是另外一个节点的父节点,兄弟结点,大概一个子节
点.每个子节点承继父节点的属性.数据库有两个逻辑部分.第一个是界说数据和数据联系关系的企图.
第二个部分是数据的实践存储.界说一个员工工具是放在企图部分,团体信息放在数据部分.
取得一个工具的实例
不像COM,你不必往利用SERVER.CREATEOBJECT往取得一个ADSI工具的实例.你只需利用GETOBJECT方
法和一个指定服务器和连接地位的参数.例子一有两个GETOBJECT的例子.在第一种情形下,代码创建
了一个WINDOWSNT的ADSI实例.每二个例子获得了一个IIS的ADSI工具.
Example1
ForWindowsNT
SetObject=GetObject("WinNT://15seconds")
ForLDAP
SetObject=GetObject("IIS://localhost/w3svc/1")
一些AD服务接口用一种出格的被称为X.500华贵称号的定名划定规矩.IIS并没有效这类划定规矩可是你必需
对X.500这一个定名划定规矩由于你有大概还要操纵别的的ADSI数据.你能够
从ftp://src.doc.ic.ac.uk/rfc/rfc1484.txt失掉相干材料.
数据取回
当我们在一个LDAP服务器上寻觅信息时,我们必需晓得是不是信息在实例中大概在计划部分.举一个例
子来讲,一个工具称号能够包括在一个工具实例中可是一个工具属性的列表将会存储在一个企图部
分.员工称号,雇佣日期,和部门被存储在员工工具中.企图部分存储了员工属性的界说像数据范例.
例二申明了一个工具实例和工具企图的界说.
Example2
EmployeeInstance
Name:BobJones
HireDate:1/1/98
Department:InformationTechnology
EmployeeObjectInstance
Attribute"Name",singlevalue,data-type"text",maxlength50"
Attribute"HireDate",singlevalue,data-type"date"
Attribute"Department",singlevalue,data-type"text"
对SQL程序员来讲,工具界说和一个表的界说是类似的.工具实例就像是一个表中的特定的一行.SQL
和ADSI的区分就在于数据是否是超过了多个表,程序员是不是必要办理数据之间的干系.在ADSI中,接
口是这些干系的卖力人.
默许WEB站点的通有属性
第一个例子能够看到IIS4.0的默许WEB站点的属性.在例3中,代码会连接到当地机的默许WEB站点.
Example3
<%
strMachineName="localhost"domainname
strObjectPath="W3SVC/1"objectname
constructobjectlocationinIIS
strPath="IIS://"&strMachineName&"/"&strObjectPath
SetIISObject=GetObject(strPath)connecttoIISmetabase
%>
Name="<%=IISObject.Name%>"
Parent="<%=IISObject.Parent%>"
SchemaLocation="<%=IISObject.Schema%>"
Class="<%=IISObject.Class%>"
Guid="<%=IISObject.Guid%>"
ADSPath="<%=IISObject.AdsPath%>"
输入显现是:
Name="1"
Parent="IIS://localhost/W3SVC"
SchemaLocation="IIS://localhost/schema/IIsWebServer"
Class="IIsWebServer"
Guid="{8B645280-7BA4-11CF-B03D-00AA006E0975}"
ADSPath="IIS://localhost/W3SVC/1"
注重:假如你要在一个ASP页面中运转本程序,请断定上岸的用户被授与了办理员的权限.
在最初一个例子的数据取回能够用于任何一个工具,包含企图工具.每个工具不论他是一个其实的
工具仍是一个企图工具都一定有这些属性:称号,父,企图定们,CLASS,GUID,和ADS路径.
这些信息包含了经由过程分级布局会见数据的一些导航信息.NAME属性是一个工具的称号.一个parent属
性告知了父工具的地位.schemalocation属性指的是企图工具的地位.class属性包含了工具的范例,
它包含了一个工具一切的属性而且被定们到schemalocation这个地位.GUID属性是一个工具的独一
的辨认码.ADSPath是你取回的这个工具的地位.
注:名为1的服务器代表默许的WEB站点
默许WEB站点的属性
既然我们已晓得了工具的地位和工具的范例,那就让我们来看一看默许WEB站点的属性.为了到达
这个目标,我们必需要获得默许WEB站点的企图(schema),找出相干的属性,而且看默许WEB站点的这
些属性的值.
Example4
<%
strMachineName="localhost"
strObjectPath="W3SVC/1"findfirstwebserverlistedinw3svc
strPath="IIS://"&strMachineName&"/"&strObjectPath
SetIISObject=GetObject(strPath)
findlocationof</p>对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
页:
[1]