创建ASP组件修改《SERV-U》FTP 的密码建一《SERV-U》FTP服务器,在ASP中修改指定帐户的密码,写了一ASP组件来修改《SERV—U》 FTP密码。启动《Vb6.0》,选择新建ActiveX DLL,更改工程属性中的工程名称为“Ftpcommand”,将CLASS名改为XJNFTP,源程序如下:Private Const scUserAgent = "vb wininet"Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0Private Const INTERNET_OPEN_TYPE_DIRECT = 1Private Const INTERNET_OPEN_TYPE_PROXY = 3Private Const INTERNET_INVALID_PORT_NUMBER = 0Private Const FTP_TRANSFER_TYPE_BINARY = &H2Private Const FTP_TRANSFER_TYPE_ASCII = &H1Private Const INTERNET_FLAG_PASSIVE = &H8000000Private Const INTERNET_SERVICE_FTP = 1Private Const INTERNET_SERVICE_GOPHER = 2Private Const INTERNET_SERVICE_HTTP = 3Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _ByVal sProxyBypass As String, ByVal lFlags As Long) As LongPrivate Declare Function FtpCommand Lib "wininet.dll" Alias "FtpCommandA" _(ByVal hConnect As Long, ByVal fExpectResponse As Boolean, ByVal dwFlags As Long, _ByVal lpszCommand As String, ByVal lContext As Long, phFtpCommand As Long) As BooleanPrivate Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _ByVal lFlags As Long, ByVal lContext As Long) As LongPrivate hOpen As LongPrivate hConnection As LongPrivate Declare Function InternetCloseHandle Lib "wininet.dll" _(ByVal hInet As Long) As IntegerPrivate newPASSWORD As String Private oldPASSWORD As StringPrivate userName As StringPrivate URLSTR As String‘修改FTP密码主程序Public Function getStr() As StringhOpen = 0 hConnection = 0 Dim nFlag As Long Dim strCmd As StringnFlag = INTERNET_FLAG_PASSIVE‘建立FTP修改密码命令字符串strCmd = "SITE PSWD " & oldPASSWORD & Space(1) & newPASSWORD‘建立internet连接hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)If hOpen = 0 Then getStr = "不能打开连接。..."If hOpen 0 Then‘与FTP服务器建立连接 hConnection = InternetConnect(hOpen, URLSTR, NTERNET_INVALID_PORT_NUMBER, _ userName, oldPASSWORD, INTERNET_SERVICE_FTP, nFlag, 0) If hConnection 0 Then bret = FtpCommand(hConnection, False, FTP_TRANSFER_TYPE_ASCII, strCmd, 0, hFile) If bret Then getStr = "密码修改成功!..." Else getStr = "密码修改失败!..." End If Else getStr = "无法登录至FTP服务器,请检查帐户名或密码是否正确。" End IfEnd If‘断开internet连接If hConnection 0 Then InternetCloseHandle (hConnection)‘断开FTP服务器连接If hOpen 0 Then InternetCloseHandle (hOpen)End Function‘传入FTP服务器的URLPublic Property Let URL(URL1 As String)URLSTR = URL1End Property‘传入FTP原有密码Public Property Let oldPSD(psd As String) oldPASSWORD = psdEnd Property‘传入FTP新密码Public Property Let newPSD(psd1 As String) newPASSWORD = psd1End Property‘传入FTP帐户名Public Property Let user(psd2 As String) userName = psd2End Property编译成Ftpcommand.DLL,在ASP服务器端注册该组件,(VB6.0在ASP服务器中自动注册),在ASP中调用该组件,源程序如下:‘接受传入的帐户名user=trim(request.form("id"))‘接受传入的原密码psw=trim(request.form("password"))‘接受传入的新密码pswx=trim(request.form("passwordx"))‘创建FTP组件应用实例Dim objSet obj = Server.CreateObject("ftpcommand.xjnftp")‘给FTP组件传送帐户名obj.user=user‘给FTP组件传送原密码obj.oldpsd=psw‘给FTP组件传送新密码obj.newpsd=pswx‘给FTP组件传送FTP服务器域名地址(URL)obj.url="ftp://ftp.luckybbs.com"rr=obj.getstr()Response.Write("")Response.Write(""+rr+"!")Response.Write("系统3秒钟后自动返回!!!")Response.Write("返回")set obj=nothingresponse.end%>本实例在WINDOWS 2000 SERVER ,IIS 5.0 ,SERV-U4.0 ,VB6.0中通过。 01-06 20:24