建立一个可修改Windows域用户密码的web页面

摘自IT Pro 2004-8-25 14:54:26 winmag 作者:winmag 

怎样建立一个可以供用户修改密码的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脚本建立一个密码修改界面是非常有用的。

posted @ 2006-12-22 11:56  洪虎  阅读(3124)  评论(1编辑  收藏  举报