|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。web
关头词:ADSI,Component,ASP,IIS
择要:本文扼要先容了ADSI的特征,并经由过程实例先容了怎样使用ADSI开辟基于WEB的WindowsNT办理程序。
ADSI(ActiveDirectoryServiceInterface)是Microsoft公司推出的同意客户以统一种界面办理分歧目次服务的使用接口,它依附壮大的功效、复杂的操纵很快失掉了普遍的使用。那末,ADSI事实是如何的器材,又怎样使用呢?
起首,要分明甚么是ActiveDirectory(举动目次)。
ActiveDirectory是将来的Windows2000中包括的一种目次服务,它扩大了之前版本Windows中目次服务的特征,并增添了一些全新的功效。举动目次具有平安、可散布、可分区、可复制等特性。它的计划体例能够很好地事情在各类设置上,不论是有几百个工具的单机仍是由上百万个工具的服务器组。举动目次的新特征,是办理者和终极用户都能够利用、办理大批的信息。
ADSI是一系列会见各类存储体例的数据的编程接口,在Microsoft今朝的产物中,WindowsNT4.0Server,Exchange,IIS,SiteServer撑持这类接口,在NT5.0种,ADSI将成为操纵体系的接口并有大概代替注册表。接纳这类托言,能够会见操纵体系的一切设置信息。
ADSI以为任何数据都存为面向工具的数据库。经由过程ADSI,你不要把握相似SQL一类的查询言语,与传统的数据库比拟,劈面向工具的数据库酿成加倍复杂:在传统的数据库中,编程者必需了解一个工具如何存储,在ADSI中,编程者只需晓得工具的名字就能够会见它。
有良多种言语能够用来对ADSI举行编程,VisualBasic,VBScript,Java,C,C++都能够会见ADSI;因为ActiveServerPages和VBScript与其分离的十分好,以是能够很简单写出会见目次服务的Internet使用程序。在Internet使用程序中,可使用.asp文件在服务器上创立、利用ADSI工具,并将其了局显现在Web页上。
来看一个复杂的例子:
天生一个包括以下代码的ASP文件:
<%
strMachineName="localhost"domainname
strObjectPath="W3SVC/1"objectname</P><P>constructobjectlocationinIIS
strPath="IIS://"&strMachineName&"/"&strObjectPath
SetIISObject=GetObject(strPath)connecttoIISmetabase
%>
Name="<%=IISObject.Name%>"<br>
Parent="<%=IISObject.Parent%>"<br>
SchemaLocation="<%=IISObject.Schema%>"<br>
Class="<%=IISObject.Class%>"<br>
Guid="<%=IISObject.Guid%>"<br>
ADSPath="<%=IISObject.AdsPath%>"<br></P><P>
用扫瞄器扫瞄,输入了局以下:</P><P>Name="1"
Parent="IIS://localhost/W3SVC"
SchemaLocation="IIS://localhost/schema/IIsWebServer"
Class="IIsWebServer"
Guid="{8B645280-7BA4-11CF-B03D-00AA006E0975}"
ADSPath="IIS://localhost/W3SVC/1"</P><P>注重,假如要运转下面这段代码,登任命户必需具有IIS的办理员权限,为了使这类使用更具有广泛性,能够将程序做成组建安装在服务器上。这里,举一个例子,做一个经由过程对ADSI编程修正WindowsNT用户口令的组件。
1、翻开VB5.0或6.0,新建一个ActiveXDLL
2、将工程定名为PasswordChanger,将缺省的类模块定名为Main.
3、将类Main的instancing属性改成:5-MultiUser
4、将工程的线程模块设为:单位线程
5、设定MicrosoftActiveDSTypeLibrary(activeds.tlb)
6、保留工程,将类定名为:Main.cls,工程定名为PasswordChanger.vbp.
7、在类的代码窗口中到场以下代码:
OptionExplicit</P><P>修正口令</P><P>PublicSubSetPassword(ByValpstrUserAsString,_
ByValpstrOldPasswordAsString,ByValpstrNewPassword_
AsString,ByValpstrConfirmPasswordAsString)</P><P>DimadsUserAsIADsUser
DimstrDialogTextAsString</P><P>OnErrorGoToChangePasswordErrorHandler
用户名不克不及为空
IfpstrUservbNullStringThen
口令不克不及为空
If(Not(pstrOldPassword=vbNullString))And_
(Not(pstrNewPassword=vbNullString))Then
两次必需输出不异的口令
If(Not(pstrNewPasswordpstrConfirmPassword))Then</P><P>设定ADSI供应者为WindowsNT
(domain为主域)
SetadsUser=GetObject("WinNT://domain/"&pstrUser&",user")</P><P>挪用ADSIChangePassword办法
adsUser.ChangePasswordpstrOldPassword,pstrNewPassword
在扫瞄器端发生HTML对话框
strDialogText="""乐成修正用户"&pstrUser&_
"的口令."""
CallCreateAlertMarkup(strDialogText)</P><P>Else</P><P>在扫瞄器端发生HTML对话框
strDialogText="""New/Confirmpasswordsaredifferent."""
CallCreateAlertMarkup(strDialogText)</P><P>EndIf</P><P>Else</P><P>在扫瞄器端发生HTML对话框
strDialogText="""AvalueforOld/Newpasswordsisrequired."""
CallCreateAlertMarkup(strDialogText)</P><P>EndIf</P><P>EndIf</P><P>SetadsUser=Nothing</P><P>ExitSub</P><P>**********</P><P>ChangePasswordErrorHandler:</P><P>
在扫瞄器端发生提醒“毛病”对话框
strDialogText="""用户"&pstrUser&"的口令没法修正.
"
strDialogText=strDialogText&"1.新口令不克不及"&_
"与之前的口令不异
"
strDialogText=strDialogText&"2.口令必需为"&_
"8-14个字母长.
"
strDialogText=strDialogText&"3.口令最少要包括"&_
"以下情形下的3个字母:
"
strDialogText=strDialogText&"-英文年夜写字母(A-Z)
"
strDialogText=strDialogText&"-英文小写字亩(a-z)
"
strDialogText=strDialogText&"-阿拉伯数字(0-9)
"
strDialogText=strDialogText&"-其他字符"&_
"(比方标点标记)
"
strDialogText=strDialogText&"4.口令中不克不及包括你的用户名"&_
"或你名字的任何一部分"""
CallCreateAlertMarkup(strDialogText)</P><P>EndSub</P><P>发生JavaScript告诫对话框
PrivateSubCreateAlertMarkup(pstrDialogTextAsString)</P><P>DimstrScriptingLanguageAsString</P><P>strScriptingLanguage="""JavaScript"""</P><P>objResponse.WritevbCrLf
objResponse.Write("<SCRIPTLANGUAGE="&strScriptingLanguage&">")&vbCrLf
objResponse.Write("<!--")&vbCrLf
objResponse.Write("{")&vbCrLf
objResponse.WritevbTab&("window.alert("&pstrDialogText&");")&vbCrLf
objResponse.Write("}")&vbCrLf
objResponse.Write("-->")&vbCrLf
objResponse.Write("</SCRIPT>")&vbCrLf</P><P>EndSub
8、编译这段代码,天生PasswordChanger.dll.
9、将发生的PasswordChanger.dll文件拷贝到WINNTSYSTEM32目次下。
10、在dos提醒符窗口中实行以下命令:
regsvr32PasswordChanger.dll</P><P>体系将弹出一个对话框,告知你挂号组件乐成。上面,必要写一个ASP文件来挪用这个组件。
<html>
<head>
<%</P><P>declarevariables
DimobjReference
DimstrUser
DimstrOldPassword
DimstrNewPassword
DimstrConfirmNewPassword</P><P>obtainformvalues
strUser=Request.Form("txtUser")
strOldPassword=Request.Form("txtOldPassword")
strNewPassword=Request.Form("txtNewPassword")
strConfirmNewPassword=Request.Form("txtConfirmNewPassword")
ifstrUser""then</P><P>createobject
SetobjReference=Server.CreateObject("PasswordChanger.Main")</P><P>changethepassword
CallobjReference.SetPassword(strUser,strOldPassword,strNewPassword,strConfirmNewPassword)</P><P>releaseobjectreference
SetobjReference=Nothing
endif
%>
<title>修正NT用户口令</title>
</head></P><P><bodybgcolor="#ffffff"></P><P><p><h2><fontcolor=blackface=Arial>修正NT用户口令</font></h2></p></P><P><formmethod="post"name="frmChangePassword"action="Changepwd.asp">
<tablewidth=325border="0">
<tr>
<tdcolSpan=2><b>
<fontsize=+1face=Arialcolor=black>
User:
</font>
</b>
</td>
<td>
<inputtype=textsize=20name="txtUser"></td>
</tr>
<tr>
<tdcolSpan=2><b>
<fontsize=+1color=blackface=Arial>
Password:
</font>
</b>
</td>
<td><font>
<inputtype="password"name="txtOldPassword">
</font></td>
</tr>
<tr>
<tdcolSpan=2>
<b>
<fontsize=+1color=blackface=Arial>
NewPassword:
</font>
</b>
</td>
<td>
<font>
<inputtype="password"name="txtNewPassword">
</font>
</td>
</tr>
<tr>
<tdcolSpan=2><b>
<fontsize=+1color=blackface=Arial>
ConfirmPassword:
</font></b></td>
<td>
<inputtype="password"name="txtConfirmNewPassword">
</font></td>
</tr>
<tr>
<tdcolSpan=3></td>
</tr>
<tr>
<tdcolSpan=3>
<divalign=center>
<fontcolor=blackface=Arial>
<INPUTid=txtChangePasswordname=txtChangePassword
style="font-FAMILY:;HEIGHT:24px;WIDTH:149px"type=submitvalue="ChangePassword">
</div>
</font>
</td>
</tr>
</table>
</form>
</body>
</html>
将此文件定名为changepwd.asp,在扫瞄器中运转,输出数据测试一下,怎样,用户的口令是不是已修正了?</P><P>经由过程以上的例子能够看出,ADSI切实其实具有很壮大的功效,操纵也十分复杂,分离ASP和VB,必定能够开辟出功效更壮大的Internet使用程序。
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|