IIS的安全验证机制做得很好,我们可以用ASP的安全验证来对windows 2000的管理者密码进行在线修改。
当有人登录站点时,利用ServerVariables集合中的LOGIN_USER捕获登录帐号,前提是必须关闭IIS中允许匿名登录这个选项,然后在changepwd.ASP文件中通过ADSI来修改密码。
以下是程序:
changepwd.htm
<body>
<!--与该输入表单有关的客户端验证脚本(即不允许新密码为空和两次密码输入是否相等的判断)请自行编号-->
<form action='changepwd.ASP' method='post'>
<input type='hidden' name='UserName' value='<%=request.servervariables("LOGIN_USER")%>'>
<br>输入旧密码:<input name="OldPwd">
<br>输入新密码:<input name="NewPwd1">
<br>确认新密码:<input name="NewPwd2">
<input type=submit value='更改'>
</form>
</body>
changepwd.ASP
<%
OldPwd=request.form("OldPwd")
NewPwd=request.form("NewPwd1")
UserName=request.form("UserName")
Set oUser=GetObject("WinNT://ComputerName/" & UserName)
oUser.ChangePassword OldPwd,NewPwd
oUser.SetInfo
set oUser=Nothing
response.write "密码修改成功!"
%>