asp代码实现在线实时开通WEB及FTP http://www.nrcce.com/nrcce_bbs/viewthread.php?tid=650&highlight=

虽然是两年前写的,( http://www.wzei.net/ReadNews.asp?NewsID=28)根本算不上什么技术前沿,但还是常常看到有人在要这样的资料,于是再次贴上,毕竟是原创的。:)
顺便说一下,这几天我已经在整理直接使用odbc功能的serv的资料,需要这方面资料的老师请耐心等几天。

    现在已经有很多学校以lan或adsl的方式接入Internet,并且购买了服务器,所以就具备了为教师、学生提供类似中国频道、中国万网提供的虚拟空间服务,即提供web和ftp服务,每个用户能够彼此独立地管理自己的空间。结合Windows2000的iis和serv-u4.0软件就可以很好的实现这一功能。但是serv-u4.0软件没有提供web管理页面,也不是用数据库来记录用户信息,如果一个一个地靠管理员手工输入用户信息,工作量可想而知。为此我参考了一些资料,写了一个asp程序,使它能够配合serv-u4.0软件,成功地实现了在线开通ftp和web服务。我校就用这一asp程序为计算机专业班级的学生开了20M的虚拟空间。

一、编程原理:
serv-u软件是使用ini文件来记录用户信息的。其信息和含义如下:
[GLOBAL] ‘存放系统信息,包括serv的注册信息
[DOMAINS] ‘存放域信息,如:
Domain1=0.0.0.0||21|Domain 1|1|0
[Domain1] ‘域domain1的用户信息,如:
Logging=1
LogIPNames=1
LogFileIPNames=1
User1=admin|1|0
Admin为该域的第一个用户
[USER=admin|1] ‘用户admin的配置信息
Password=admin888  ‘密码,默认状态下,serv使用加密密码
HomeDir=d:/homepage/llm ‘主目录
RelPaths=1
AlwaysAllowLogin=1
ChangePassword=1  ‘是否允许修改密码
DiskQuota=1|20480000|84786 ‘是否启用磁盘配额和磁盘空间大小以及已使用的空间大小
SpeedLimitUp=204800 ‘上传速度
SpeedLimitDown=204800 ‘下传速度
TimeOut=600  ‘空闲时间
Access1=d:/homepage/llm|RWAMLCDP ‘有管理权限的目录
了解ini文件的含义之后,我们只要在这个文件域用户信息和用户信息两处加入相应的信息,就能达到添加用户的目的。Asp的sfo(Scripting.FileSystemObject )组件提供了编辑文本文件的功能,利用这一组件还可以同时为新添加的用户创建文件夹,功能十分强大。但因为不知道serv-u的加密算法,所以必须要将密码的类型设为“不加密”。如下图:



根据以上分析,实现在线实时开通ftp和web服务的过程可以分为2步来完成:
1、 建立用户主目录,该目录具有web浏览权限。
2、 往ini文件中添加用户。
二、准备工作
1、 安装iis(Internet 信息服务),建立两个web服务器,一个放申请、开通ftp服务的主程序,一个放个人主页。
2、 安装serv-u,密码的类型设为“不加密”。

三、核心代码
说明:
applypage.asp为申请页面;
变量Servpath为serv-u的安装目录;
变量homepath为放个人主页的web服务器主目录;
具体代码:
<%
Sub Createindex(Folder) 定义一个创建默认主页的子程序
ipf = Folder&"/index.htm"
Set indexfso = CreateObject("Scripting.FileSystemObject")
indextext="<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>平阳职教中心学生虚拟主机系统</title></head>"
indextext = indextext&CHR(13)&CHR(10)&"<body style='font-size: 9pt'><br><br><br><hr color='#FF0000' width='80%' size='1'>"
indextext = indextext&CHR(13)&CHR(10)&"<p align='center'><b>系统默认主页顺序</b><br><br>"
indextext = indextext&CHR(13)&CHR(10)&"<br><br>1、default.htm<br><br>2、default.htm<br><br>3、index.asp<br><br>4、index.htm<br><br>"
indextext = indextext&CHR(13)&CHR(10)&"<br><br><br><br><hr color='#FF0000' width='80%' size='1'></body></html>"
Set ipf = indexfso.OpenTextFile(ipf,2,True)
ipf.WriteLine(indextext)
ipf.close
set ipf=nothing
set indexfso=nothing
End Sub

application("path")=Servpath&"ServUDaemon.ini"
application.lock
Set myfileobject=server.createobject("scripting.filesystemobject")
If NOT myfileobject.folderexists(homepath&username) then ‘检查用户目录是否已经存在。
myfileobject.createfolder(homepath&username)  ‘创建用户目录
call Createindex(homepath&username) ‘调用子程序,创建默认主页
else
response.write"<SCRIPT language=JavaScript>alert('目录已经存在,无法创建该用户主目录!');"   
response.write"window.location='applypage.asp';</SCRIPT>"
response.end
End If
%>
<% Dim fso, f1, ts, s, input(),item,counter,i,n,ii,username1,sp
Set fso=CreateObject("Scripting.FileSystemObject")
Set ts=fso.OpenTextFile(application("path"),1, False) ‘打开ini文件
counter = 0 ‘行数
i=0
n=0 ‘用户数初始值为0
do while not ts.AtEndOfStream
thisline = ts.readline
Redim preserve input(counter)
input(counter) = thisline
if LCase(left(input(counter),4))=LCase("user") then
sp=split(input(counter),"|")
username1=sp(0)
username1=right(username1,(len(username1)-instr((username1),"=")))
if LCase(username1)=LCase(username) then  ‘判断用户名是否存在
Response.Write "用户名已经存在!"
Response.end
end if
if i=0 then
i=counter  ‘记录“user=”在ini文件中的位置
end if
n=n+1 ‘统计用户数
end if

counter = counter + 1
loop
ts.Close

Set f1 = fso.CreateTextFile(application("path"), 1,False)
ii=0
for each item in input
if ii=(i+n) then
f1.WriteLine "user"&(n+1)&"="&username&"|1|0"
end if
f1.WriteLine item ‘将读出的
ii=ii+1
next

f1.WriteLine "[USER="&username&"|1]" ‘用户名
f1.WriteLine "Password="&userpass ‘密码
f1.WriteLine "HomeDir="&homepath&username ‘主目录路径
f1.WriteLine "RelPaths=1"
f1.WriteLine "AlwaysAllowLogin=1"
f1.WriteLine "ChangePassword=1"
f1.WriteLine "SpeedLimitUp=204800"
f1.WriteLine "SpeedLimitDown=204800"
f1.WriteLine "DiskQuota=1|20480000|0" ‘空间大小
f1.WriteLine "TimeOut=600"
f1.WriteLine "Access1="&homepath&username&"|RWAMLCDP" ‘目录读写权限

application.unlock 解除application锁定
Response.Redirect "page.asp" ‘发送成功页面
response.end
%>
建议将用户名和密码同时记入数据库,这样便于管理,而且如果学校的网站域名已经做了泛域名解析,用户就可以通过二级域名(如 http://username.pyzjzx.cn)来访问自己的个人主页。
四、程序界面
申请空间页面:


申请成功页面:




以上代码在win2000 server + serv-u4.0以上版本环境调试成功,程序下载地址:uploadfile/serv.rar 联系信箱: admin@pyjy.net


附:升级后的代码(主要是支持密码加密了)

-----------------------------
在线开通serv-u帐号asp代码使用说明:
-----------------------------
1、apply.htm为申请空间的页面。
2、config.inc为系统配置文件,请正确填写参数。
3、sub.asp为已经写好的子程序,调用方法:serviniadd(username,userpass),其中username为用户名,userpass为密码
4、sub.asp中还包括其他几个常用的函数,具体见程序注释

serv-u4.0以上版本环境调试成功,支持最新的6.0版本!

-----------------------------
我的建议:
-----------------------------
1、使用该程序给他人提供虚拟空间服务器请注意安全,最好不要给用户开放脚本权限!
2、如果用户很多(超过数百),请使用数据库来存放用户信息,我将提供类似的使用serv数据库插件或者直接使用serv的odbc功能的程序。

-----------------------------
程序编写:浙江平阳职教中心谢作如
程序下载地址: http://www.wzei.net/ReadNews.asp?NewsID=28
联系信箱: xzr@pyjy.net
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
==================================================================================== 一、程序简介:   本程序采用ms Access+ASP设计,以Serv-U原版软件为基础,无需购买任何插件,可让Serv-U具有用户在线实时注册、管理的功能。设置简单,适用范围广,可广泛地应用于空间提供商,论坛,学校机房,单位内部网等用Serv-U为用户提供FTP空间或FTP帐号的单位。 主要具有以下功能: 1.使Serv-U可自由地在线实时注册,管理更改Serv-U密码。 2.可自动创建用户帐号文件夹。 二、使用程序环境要求: 1.Serv-U6.0及以上版本(即可支持ODBC数据库管理的版本) 2.服务器具有FSO功能。 ==================================================================================== 三、安装关键步骤: 1.Serv-U的域类型:存储于ODBC数据库中 2.在ODBC 数据源管理器中建立系统数据源:ftp 3.打开Serv-U安装目录下的ServUDaemon.ini文件,做以下操作: (1)用下面的代码覆盖原来的ODBCSource、ODBCTables、ODBCColumns ------------------------------------------ ODBCSource=ftp|| ODBCTables=user_accounts|group_accounts|user_access|group_access|user_IP_access|group_IP_access ODBCColumns=user|password|skey|homedir||access|disable||relpaths|||changepass|quotaenable||||maxusers|||ratioup|ratiodown|ratiocredit|quotacurrent|quotamax|expiration|privilege|passtype|ratiotype|groups|notes|indexno ------------------------------------------ (2)把“ReloadSettings=True”语句拷到每个节点的后面,如[GLOGAL]、[DOMAINS]、[Domain1]、[Domain2]等节后的后面 大家可参看《安装图示》文件夹中的图 ==================================================================================== 四、网站信息可在config.asp文件中按提示修改。 ==================================================================================== 五、其它说明: 1.本程序数据库为serv-u官方网站(http://www.serv-u.com/)提供的数据库修改而来。 2.为安全起见,请注意修改数据库名称。 3.本程序需要服务器具有FSO功能,如FSO没有权限。可以在后台测试是否能删除文件,解决FSO组件是否开启的方法如下:首先在系统盘中查找scrrun.dll,如果存在这个文件,请跳到第三步,如果没有,请执行第二步。 在安装文件目录i386中找到scrrun.dl_,用winrar解压缩,得scrrun.dll,然后复制到x(你的系统盘):\windows\system32\目录中。 运行regsvr32 scrrun.dll即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值