建立一个可修改Windows域用户密码的web页面
怎样建立一个可以供用户修改密码的web页面?
你可以使用动态服务器主页(AS))脚本建立一个密码修改页面。ASP能够完全访问微软活动目录服务界面(ADSI),以让你可以使用不同的功能。比如修改密码或者建立帐号。当你编写这样脚本的时候,你必须考虑诸如脚本在哪个帐号下运行或者你希望运行此脚本的权限等因素。最基本的修改用户密码的ADSI命令是:
set usr = GetObject("LDAP://CN=John Savill,CN=Users,DC=savilltech,DC=com")
usr.put "userPassword", NewPassword
第一行(因为空格的缘故显示为两行)为域savilltech.com中用户john savil赋一个句柄。下一行将文本newpassword放到userpassword属性中
我编写了一个简短名为changpass.asp的脚本以提示用户输入用户名和密码(注意将savilltech.com替换为你当前的域名).changepass.asp代码可以在此处下载。如下面所示:
<% strUserCN = request.form("cn") strNewPassword = request.form("newpass") strPassVerify = request.form("passverify")
if strUserCN="" then response.write "<html><head><title>Change Password</title></head><body>" response.write "<center><h1>Web Password Reset</h1></center>" response.write "<hr><br><br><form method=post action=changepass.asp><table>" response.write "<tr><td>CN: </td><td><input type=text name=cn></td><tr>" response.write "<tr><td>New Password: </td><td><input type=password name=newpass></td></tr>" response.write "<tr><td>Verify Password: </td><td><input type=password name=passverify></td></tr>" response.write "<tr><td colspan=2 align=center><input type=submit value='Reset Password'></td></tr>" response.write "</table></body></html>" response.end else
if strNewPassword = strPassVerify then
set usr = GetObject("LDAP://CN=" & strUserCN & ",CN=Users,DC=savilltech,DC=com")
usr.put "userPassword", strNewPassword
response.write "<html><head><title>Results</title></head><center><h1>Update Results</h1></center><hr><br><br>" response.write strUserCN & ": password was successfully updated" response.end
else
response.write "<html><head><title>Error!</title></head><body>" response.write "<center><h1>An Error Has Occurred!</h1></center>" response.write "<hr><br><br>" response.write "The password and confirmation do not match. Please go back and try again." response.end
end if end if
在之前我们讨论的一个关于“是否windows2003提供了一个让用户远程通过web修改密码的方法”的问题,windows server 2003 自己提供了一个网页来修改密码。然而,你会发现在自己的web页面或者站点利用实例ASP脚本建立一个密码修改界面是非常有用的。 |