ADSI及其在WEB上的应用[2]

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:

If pstrUser <> vbNullString Then
'口令不能为空
If (Not (pstrOldPassword = vbNullString)) And _
(Not (pstrNewPassword = vbNullString)) Then
'两次必须输入相同的口令
If (Not (pstrNewPassword <> pstrConfirmPassword)) Then

' 设定 ADSI 提供者为 WindowsNT
' (domain 为主域)
Set adsUser = GetObject("WinNT://domain/" & pstrUser & ",user")

' 调用 ADSI ChangePassword 方法
adsUser.ChangePassword pstrOldPassword, pstrNewPassword
' 在浏览器端产生 HTML 对话框
strDialogText = """成功修改用户 " & pstrUser & _
" 的口令."""
Call CreateAlertMarkup(strDialogText)

Else

' 在浏览器端产生 HTML 对话框
strDialogText = """New/Confirm passwords are different."""
Call CreateAlertMarkup(strDialogText)

End If

Else

' 在浏览器端产生 HTML 对话框
strDialogText = """A value for Old/New passwords is required."""
Call CreateAlertMarkup(strDialogText)

End If

End If

Set adsUser = Nothing

Exit Sub

'**********

ChangePasswordErrorHandler:

'
'在浏览器端产生提示 “错误” 对话框
strDialogText = """用户 " & pstrUser & "的口令无法修改.\n\n"
strDialogText = strDialogText & "1. 新口令不能 " & _
"与以前的口令相同\n"
strDialogText = strDialogText & "2. 口令必须为 " & _
"8-14个字母长.\n"
strDialogText = strDialogText & "3. 口令至少要包含 " & _
"以下情况下的3个字母:\n"
strDialogText = strDialogText & " - 英文大写字母 (A-Z)\n"
strDialogText = strDialogText & " - 英文小写字亩 (a-z)\n"
strDialogText = strDialogText & " - 阿拉伯数字 (0-9)\n"
strDialogText = strDialogText & " - 其他字符" & _
" (例如标点符号)\n"
strDialogText = strDialogText & "4. 口令中不能包含你的用户名 " & _
"或你名字的任何一部分"""
Call CreateAlertMarkup(strDialogText)

End Sub

' 产生JavaScript警告对话框
Private Sub CreateAlertMarkup(pstrDialogText As String)

Dim strScriptingLanguage As String

strScriptingLanguage = """JavaScript"""

objResponse.Write vbCrLf
objResponse.Write ("<SCRIPT LANGUAGE=" & strScriptingLanguage & ">") & vbCrLf
objResponse.Write ("<!--") & vbCrLf
objResponse.Write ("{") & vbCrLf
objResponse.Write vbTab & ("window.alert(" & pstrDialogText & ");") & vbCrLf
objResponse.Write ("}") & vbCrLf
objResponse.Write ("-->") & vbCrLf
objResponse.Write ("</SCRIPT>") & vbCrLf

End Sub
8、 编译这段代码,生成PasswordChanger.dll.
9、 将产生的PasswordChanger.dll文件拷贝到 WINNT\SYSTEM32目录下。
10、 在dos提示符窗口中执行以下命令:
regsvr32 PasswordChanger.dll

系统将弹出一个对话框,告诉你登记组件成功。下面,需要写一个ASP文件来调用这个组件。
<html>
<head>
<%

' declare variables
Dim objReference
Dim strUser
Dim strOldPassword
Dim strNewPassword
Dim strConfirmNewPassword

' obtain form values
strUser = Request.Form("txtUser")
strOldPassword = Request.Form("txtOldPassword")
strNewPassword = Request.Form("txtNewPassword")
strConfirmNewPassword = Request.Form("txtConfirmNewPassword")
if strUser<>"" then

' create object
Set objReference = Server.CreateObject("PasswordChanger.Main")

' change the password
Call objReference.SetPassword(strUser,strOldPassword,strNewPassword,strConfirmNewPassword)

' release object reference
Set objReference = Nothing
end if
%>
<title>修改NT用户口令</title>
</head>

<body bgcolor="#ffffff">

<p><h2><font color=black face=Arial>修改NT用户口令</font></h2></p>

<form method="post" name="frmChangePassword" action="Changepwd.asp">
<table width=325 border="0">
<tr>
<td colSpan=2><b>
<font size=+1 face=Arial color=black>
User:
</font>
</b>
</td>
<td>
<input type=text size=20 name="txtUser"></td>
</tr>
<tr>
<td colSpan=2><b>
<font size=+1 color=black face=Arial>
Password:
</font>
</b>
</td>
<td><font>
<input type="password" name="txtOldPassword">
</font></td>
</tr>
<tr>
<td colSpan=2>
<b>
<font size=+1 color=black face=Arial>
New Password:
</font>
</b>
</td>
<td>

本文关键:ADSI及其在WEB上的应用
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top