ASP+MSSQL在线修改Serv-U密码
2018-09-06 13:06
下面是以Serv-U 6.0和Sql Server 2000相结合的演示。
建表Sql 语句:
CREATE TABLE [groupaccounts] (
[id] int IDENTITY (1,1) PRIMARY KEY,
[Index] int Default 0,
[Name] nVarChar(50) default ,
[Notes] nVarChar(255) default
)
CREATE INDEX [Name] on [groupaccounts]([Name] )
CREATE TABLE [groupdiraccess] (
[id] int IDENTITY PRIMARY KEY,
[Access] nVarChar(255) default ,
[Index] int Default 0,
[Name] nVarChar(50) default
)
CREATE INDEX [Name] on [groupdiraccess]([Name] )
CREATE TABLE [groupipaccess] (
[id] int IDENTITY PRIMARY KEY,
[Access] nVarChar(255) default ,
[Index] int Default 0,
[Name] nVarChar(50) default
)
CREATE INDEX [Name] on [groupipaccess]([Name] )
CREATE TABLE [useraccounts] (
[id] int IDENTITY PRIMARY KEY,
[Access] nVarChar(255) default ,
[AlwaysLogin] int Default 0,
[ChangePass] int Default 0,
[Disable] int Default 0,
[Expirationtype] int Default 0,
[Expiration] datetime Default 1980-1-1,
[Groups] nVarChar(50) default ,
[HideHidden] int Default 0,
[HomeDir] nVarChar(100) default ,
[idleTimeOut] int Default 0,
[LogMesfile] nVarChar(100) default ,
[MaxIp] int Default -1,
[MaxSpeedDown] decimal Default 0,
[MaxSpeedUp] decimal Default 0,
[MaxUsers] int Default -1,
[Name] nVarChar(50) default ,
[Needsecure] int Default 0,
[Notes] nVarChar(255) default ,
[PassType] int Default 0,
[Password] nVarChar(50) default ,
[Privilege] int Default 0,
[QuotaCurrent] decimal Default 0,
[QuotaEnable] int Default 0,
[QuotaMax] decimal Default 0,
[RatioCredit] decimal Default 0,
[RatioDown] int Default 0,
[RatioType] int Default 0,
[RatioUP] int Default 0,
[RelPaths] int Default 0,
[SessionTimeOut] int Default 0,
[SkeyValues] nVarChar(50) default
)
CREATE INDEX [Name] on [useraccounts]([Name] )
CREATE TABLE [userdiraccess] (
[id] int IDENTITY PRIMARY KEY,
[Access] nVarChar(255) default ,
[Index] int Default 0,
[Name] nVarChar(50) default
)
CREATE INDEX [Name] on [userdiraccess]([Name] )
CREATE TABLE [useripaccess] (
[id] int IDENTITY PRIMARY KEY,
[Access] nVarChar(255) default ,
[Index] int Default 0,
[Name] nVarChar(50) default
)
CREATE INDEX [Name] on [useripaccess]([Name] )
ODBCSource=Serv-U
ODBCTables=useraccountsgroupaccountsuserdiraccessgroupdiraccessuseripaccessgroupipaccess
ODBCColumns=NamePasswordSkeyValuesHomeDirLogMesfileAccessDisableNeedsecureRelPathsHideHidden
AlwaysLoginChangePassQuotaEnableMaxIpMaxSpeedUpMaxSpeedDownMaxUsersidleTimeOutSessionTimeOutRatioUP
RatioDownRatioCreditQuotaCurrentQuotaMaxExpirationPrivilegePassTypeRatioTypeGroupsNotesIndex
我们利用Serv-U的obdc功能,可以把FTP用户信息存在数据库中,这样对Web操作方便了很多,下面是在线更改密码的列子,数据库为Access,表和字段的设计请参考Serv-U的帮助文件。
加密算法为随机码与MD5 32 位加密,例如:
两个随机字母:ab
用户输入密码:123456
生成的密码为:ab + MD5(ab123456)
补充:md5返回为32位的大写字符,附md5.asp
提示:代码仅实现更改密码的功能,并不一定完全符合或达到您的需求。
<!--#include file=conn.asp-->
<!--#include file=include/md5.asp-->
<%
dim act,UserName,OldPassword,NewPassword,reNewPassword
act = Request.form(act)
if act = update then
UserName = Request.form(UserName)
OldPassword = Request.form(OldPassword)
NewPassword = Request.form(NewPassword)
reNewPassword = Request.form(reNewPassword)
UserName = Replace(UserName,,)
if len(UserName)<1 or len(OldPassword)<1 or len(NewPassword)<1 or len(reNewPassword)<1 then
alert(表单没有填写完整)
end if
if trim(NewPassword)<>trim(reNewPassword) then
alert(密码与确认密码不一样)
end if
Sql0 = select top 1 name,[password] from [useraccounts] where name = UserName
set rs0 = conn.execute(Sql0)
if rs0.eof and rs0.bof then
alert(用户名不存在)
else
dbname = rs0(name)
dbpassword = rs0(password)
end if
cdbpassword = left(dbpassword,2) md5(left(dbpassword,2) OldPassword)
if trim(cdbpassword) <> trim(dbpassword) then
alert(密码错误)
else
rndstr = MyRandc(2) 两位随机字母
newdbpassword = rndstr md5(rndstr NewPassword)
sql2 = update [useraccounts] set [password] = newdbpassword where name= UserName
conn.execute(sql2)
alert(密码已经更改,可能要几钟后才能生效)
end if
end if
function alert(x)
response.write <script language=JavaScript>alert( replace(x,,) );history.go(-1);</script>
conn.close
set conn = nothing
response.end
end function
function MyRandc(n)生成随机字符,n为字符的个数
thechr =
for i=1 to n
Randomize timer
zNum = cint(25*Rnd)
if zNum mod 2 = 0 then
zNum = zNum + 97
else
zNum = zNum + 65
end if
thechr = thechr chr(zNum)
next
MyRandc = thechr
end function
%>
<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<META NAME=Author CONTENT=海娃(51windows)>
<META NAME=Keywords CONTENT=
<title>更改FTP (Serv-U) 密码lt;/title>
</head>
<body>
<form method=POST action= name=form autocomplete=off>
<input type=hidden name=act value=update>
<p align=center>
<center>
<table border=0 width=480 cellpadding=2 cellspacing=1 class=table style=border: 1 solid #336699;font-size:14px;>
<tr>
<td width=100% align=center colspan=2 class=title style=background:#336699;color:#FFFFFF;>更改FTP (Serv-U) 密码</td>
</tr>
<tr>
<td width=30% align=left>用户名[√]:</td>
<td width=70%><input class=input type=text maxlength=20 name=UserName size=25 value= /> (FTP登陆用户名)</td>
</tr>
<tr>
<td width=30% align=left>旧密码[√]:</td>
<td width=70%><input class=input type=password maxlength=20 name=OldPassword size=25 value= /> (必须输入旧密码)</td>
</tr>
<tr>
&nb
文章标题:ASP+MSSQL在线修改Serv-U密码
文章链接:http://soscw.com/index.php/essay/10921.html