如何用ASP代码实现虚拟主机

  以下是创建一个虚拟主机的代码:

config.xml(配置信息)

<Root_Element>
<admin>Administrator</admin>
<adminpass>xxxxxx</adminpass>
<readuser>IUSR_MACHINE</readuser>
<domain>cocoo.net</domain>
<dnsadmin>dnsadmin</dnsadmin>
<dnsadminpass>yyyyy</dnsadminpass>
<dnsip>10.1.143.227</dnsip>
<group>tryit</group>
<webdir>http://hanhong.cocoo.net</webdir>
</Root_Element>

global.asa(配置文件)

<SCRIPT LANGUAGE=vbscript RUNAT=Server> 
Sub Application_OnStart
set ff=server.createobject("microsoft.xmldom")
ff.async=false
ff.load server.mappath("config.xml")
set rootElem = ff.documentElement 
for e1=0 to rootElem.childNodes.length-1 
application(trim(rootElem.childNodes.item(e1).nodeName))=trim(rootElem.childNodes.item(e1).text)
next
End Sub
</script>

index.asp(申请页面)

<% 
user=trim(request("user"))
pass=trim(request("pass"))
email=trim(request("email"))
if user<>"" then
if pass="" or instr(email,"@")<2 then
response.write "<font color='red'>填写错误</font>"
else
SET GG=SERVER.CREATEOBJECT("QWEB.USER")
gg.logon application("admin") & "@" & application("domain"),application("adminpass")
SET RR=GG.CREATE(user,application("group"))
if gg.iserr then
response.write "<font color='red'>不能创建用户:" & gg.errstring & "</font>"
else
gg.value("pwdLastSet",rr)=-1
gg.changepassword "", pass,rr
response.write gg.errstring
gg.value("accountdisabled",rr)=TRUE
gg.value("accountexpirationdate",rr)=now()+2
gg.value("description",rr)=session.SessionID
SET FF=CreateObject("QWEB.dns")
domainn=right(email,len(email)-instr(email,"@"))
SET cc=CREATEOBJECT("qmail.newmail")
cc.sender="AA网络<anyone@anyone.net>"
cc.receiver=email
cc.sendashtml=true
cc.subject="注册确认"
cc.body="<a href='" & application("webdir") & "/active.asp?user=" & user & "&id=" & session.SessionID & "&pass=" & pass & "'>谢谢您的注册,请在24小时内(" & (now()+1) & ")激活您的帐户。</a>"
vv=ff.mxrecord(application("dnsip"),domainn)
HH=SPLIT(VV," ")
FOR G=0 TO UBOUND(HH)
cc.smtpsvr=hh(g)
cc.send
if cc.errcode=true then exit for
next
if cc.errcode=false then
gg.delete rr
response.write "<font color='red'>无法发送注册信息</font>"
else
response.write "<font color='red'>注册成功,请24小时内查看邮件,激活帐户.</font>"
response.end
end if 
set cc=nothing
set ff=nothing
end if
set gg=nothing
end if
end if
%>
<h1 align="center">免费空间申请</h1>
<form name="form1" method="post" action="<% =request.ServerVariables("SCRIPT_NAME") %>">
<p>用户名: 
<input type="text" name="user">
</p>
<p>密 码: 
<input type="password" name="pass">
</p>
<p>电子邮件: 
<input type="text" name="email">
</p>
<p>
<input type="submit" name="Submit" value="现在申请">
</p>
</form>
<p align="center"> </p>

active.asp(确认页面,建立站点、开通FTP、EMAIL、配置DNS纪录)

<%
user=request("user")
id=request("id")
SET UU=SERVER.CREATEOBJECT("QWEB.MEMBER")
SET GG=SERVER.CREATEOBJECT("QWEB.USER")
SET z1=SERVER.CreateObject("QWEB.DIR")
set bb=server.createobject("MDUsercom.MDUser")
Set mUserInfo =server.createobject("MDUsercom.MDUserInfo")
set ff=createobject("qweb.dns")
UU.LOGON application("admin") & "@" & application("domain"),application("adminpass")
gg.logon application("admin") & "@" & application("domain"),application("adminpass")
SET RR=GG.user(user,application("group"))

if gg.iserr then 
msg1= "获取用户资料时发生错误:" & gg.errstring
else
if gg.value("description",rr)<>id or (gg.value("accountdisabled",rr)=false) then
msg1= "激活失败,请您从邮箱内提示的地址连接,或帐户在此之前已经被激活"
else
mpath=session.sessionid
z1.CREATE SERVER.MapPath("free/" & mpath),user,application("readuser")
if z1.iserr then
msg1="在创建用户目录时发生错误:" & z1.errstring
else
z1.CREATE SERVER.MapPath("free/" & mpath & "/mail"),user,application("readuser")
if z1.iserr then
msg1="在创建用户邮件目录时发生错误:" & z1.errstring
z1.delete SERVER.MapPath("free/" & mpath)
else
SET SS=z1.CREATESITE(user & "." & application("domain"),SERVER.MapPath("free/" & mpath))
if z1.iserr then
msg1="在创建站点时发生错误:" & z1.errstring
z1.delete SERVER.MapPath("free/" & mpath & "/mail")
z1.delete SERVER.MapPath("free/" & mpath)
else
z1.createftpdir user,SERVER.MapPath("free/" & mpath)
if z1.iserr then
msg1="在创建FTP目录时发生错误:" & z1.errstring
z1.delete SERVER.MapPath("free/" & mpath & "/mail")
z1.delete SERVER.MapPath("free/" & mpath)
set site1=z1.getsite(user & "." & application("domain"))
z1.deletesite site1
else
ff.logon application("domain"),application("dnsip"),application("dnsadmin"),application("dnsadminpass")
ff.arecord(user & "." & application("domain"))=application("dnsip")
if ff.iserr then
msg1="在写入DNS记录时发生错误:" & ff.errstring
z1.delete SERVER.MapPath("free/" & mpath & "/mail")
z1.delete SERVER.MapPath("free/" & mpath)
set site1=z1.getsite(user & "." & application("domain"))
z1.deletesite site1
z1.deleteftpdir user
else
bb.LoadUserDll
bb.inituserinfo muserinfo
muserinfo.fullname=user
muserinfo.mailbox=user
muserinfo.domain=application("domain")
muserinfo.MailDir=SERVER.MapPath("free/" & mpath & "/mail")
muserinfo.password=request("pass")
muserinfo.MaxDiskSpace=25000000
muserinfo.ApplyQuotas=true
kk=bb.adduser(muserinfo)
if kk<>"0" then 
msg1="在创建用户邮箱时发生错误:" & kk
z1.delete SERVER.MapPath("free/" & mpath & "/mail")
z1.delete SERVER.MapPath("free/" & mpath)
set site1=z1.getsite(user & "." & application("domain"))
z1.deletesite site1
z1.deleteftpdir user
ff.arecord(user & "." & application("domain"))=""
else
gg.value("accountexpirationdate",rr)=gg.value("accountexpirationdate",rr)+366
gg.value("accountdisabled",rr)=false
gg.value("EmailAddress",rr)=user & "@" & application("domain")
gg.value("HomeDirectory",rr)=SERVER.MapPath("free/" & mpath)
if gg.iserr then
msg1="在设置用户属性时发生错误:" & gg.errstring
z1.delete SERVER.MapPath("free/" & mpath & "/mail")
z1.delete SERVER.MapPath("free/" & mpath)
set site1=z1.getsite(user & "." & application("domain"))
z1.deletesite site1
z1.deleteftpdir user
ff.arecord(user & "." & application("domain"))=""
bb.DeleteUser user & "@" & application("domain"),511
bb.FreeUserDll
else
bb.FreeUserDll
session("isok")="true"
msg1="激活成功,您站点的域名是http://" & user & "." & application("domain") & "<br>"
msg1=msg1 & "FTP地址:ftp://" & user & "." & application("domain") & "<br>"
msg1=msg1 & "用户名: " & user & "<br>"
msg1=msg1 & "邮箱:" & user & "@" & application("domain") & "<br>"
msg1=msg1 & "密码:是您注册时填写的密码。<br><a href='logon.asp'>登录</a><br>"
end if
end if
end if
end if
end if
end if
end if
end if
end if
UU.logoff
set gg=nothing
SET UU=nothing
SET z1=nothing
set bb=nothing
Set mUserInfo =nothing
set ff=nothing
response.write msg1
%>

logon.asp(域名重指向)

<% user=trim(request("user"))
pass=trim(request("pass"))
IP=trim(request("IP"))
if user<>"" then
SET GG=SERVER.CREATEOBJECT("QWEB.USER")
gg.logon application("admin") & "@" & application("domain"),application("adminpass")

SET RR=GG.USER(user,application("group"))
if gg.iserr then
response.write "<font color='red'>用户不存在!</font>"
else
gg.changepassword pass,"mypass",rr
if gg.iserr then
response.write "<font color='red'>密码错误!</font>"
else
gg.changepassword "mypass",pass,rr
set ff=createobject("qweb.dns")
ff.logon application("domain"),application("dnsip"),application("dnsadmin"),application("dnsadminpass")
if ip="" then
ff.arecord(user & "." & application("domain"))=application("dnsip")
else
ff.arecord(user & "." & application("domain"))=ip
end if
if ff.iserr then
response.write "设置失败,请重试!"
else
response.write "更新成功!"
end if
set ff=nothing
end if 
end if
set gg=nothing
end if
%>
<h1 align="center">管 理</h1>
<form name="form1" method="post" action="<% =request.ServerVariables("SCRIPT_NAME") %>">
<p>用户名: 
<input type="text" name="user">
</p>
<p>密 码: 
<input type="password" name="pass">
</p>
<p>把我的域名指向以下IP地址,如果为空则指向您的虚拟目录:</p>
<p>
<input type="text" name="IP">
</p>
<p>
<input type="submit" name="Submit" value="更改">
</p>
</form>
<p align="center"> </p>

时间: 2024-11-20 17:06:53

如何用ASP代码实现虚拟主机的相关文章

如何用ASP代码实现网页中的播放器的控制按钮

问题描述 请各位大侠,帮个忙,小MM做毕业设计遇到问题,如何用ASP代码实现网页中的播放器的控制按钮.谁能提供代码给小M我,请加QQ或者在论坛留言,感激............ 解决方案 解决方案二:播放器的按钮一般都是用js控制的解决方案三:不会asp学习~

如何用asp代码,调用别的网站动态的asp文件!

问题描述 如何用asp程序,调用别的网站的asp文件!急需代码!高手帮忙下!!问题补充:是远程调用asp动态文件,如何实现! 解决方案 本帖最后由 haoren880 于 2011-12-19 19:50:56 编辑解决方案二:该回复于2011-12-20 09:31:58被版主删除解决方案三:动态??解决方案四:out还没听过解决方案五:怎么个远程调用解决方案六:js跨域调用吧...呵呵.

在虚拟主机上部署ASP.NET AJAX 1.0 Beta的程序集

ajax|asp.net|程序|虚拟主机 由于ASP.NET AJAX 1.0 Beta将所需的程序集注册到了GAC中,因此有朋友担心无法在虚拟主机上部署ASP.NET AJAX了(总不见得让服务商在GAC中安装那些程序集吧).其实解决这个问题的方法非常简单.由于ASP.NET在搜索GAC之前,会首先在Bin目录中查找所需的程序集,因此只需简单地将所需的程序集复制到Web Site的Bin目录下即可. 当然,这只是部署ASP.NET AJAX 1.0程序集的方式,并不排除由于虚拟主机上的设置导致

asp.net网站出错时如何处理?_星外虚拟主机

必须在出错的服务器上,用IE打开出错的网址,才能看到完整的出错信息,通过分析完整的出错信息,才能知道具体的出错原因.  不在出错的服务器上访问出错的网址,看到的信息是不完整的.  通常的出错可能如下:  一.Net 1.1的程序放在.Net2.0的虚拟主机中运行,或反之  二.用户自己设计的web.config文件与虚拟主定义的冲突,只要删除冲突行就可以解决.  三.需要放在根目录下运行的程序却放在二级目录中造成出错,如dz论坛的NT版要就要放在根目录下才能运行.  四.权限问题:  1.没有点

asp.net应用程序如何发布到国外免费的支持asp.net的虚拟主机上?

问题描述 各位好!小弟刚学asp.net,前几天申请了一个国外提供的支持asp.net的虚拟主机(给了我FTP地址),请问如何才能将我生成的asp.net程序发布到这个虚拟主机上.对了,还要告诉大家,登陆这个网站后,可以通过这个网站的主页来设置我的虚拟空间的目录,将我开发的项目按照项目目录直接COPY过去能行吗?还有一个问题想请教各位大哥,小弟想通过自家的对等网(两台电脑通过宽带路由器相连并接入INTERNET.一台运行windows2000server,另一台运行windowsXPprofes

新手站长如何购买虚拟主机做网站? 只需六步完成建站

作为一个新手站长,笔者也想拥有一个自己的网站.想了好久,才确定了网站的主题,然后开始设计网站的页面.随着http://www.aliyun.com/zixun/aggregation/18434.html">网站页面和网站程序的完工,虚拟主机的选择不得不认真对待.一个好的网站,前提是要有一个好的基础,即虚拟主机空间.因此笔者今天在这里想和众多新手站长们分享一下购买虚拟主机的一些心得. 一.国内外虚拟主机 首先,要考虑的是备案问题,新手站长们都知道国内空间的备案程序不仅错综复杂,而且限制的东

Apache如何配置多个虚拟主机

VirtualHost 在我的本机内 Apache 的主配置文件在:  代码如下 复制代码 D:/usr/local/apache2/conf/httpd.conf 创建各个虚拟主机的子配置文件: 创建 dbmanager 的配置文件:D:/usr/webroot/phpMyAdmin/httpd.conf  代码如下 复制代码 #dbmanager 虚拟主机设置 <VirtualHost 127.0.0.2:80>     ServerName www.111cn.net     Docum

推荐:ASP.NET虚拟主机安全漏洞解决方案

asp.net|安全|安全漏洞|解决|虚拟主机 说明:本文中所需环境为2003Server+iis6.0+ms sql2000 曾经很早就在网上看到一篇关于<asp.net虚拟主机的重大隐患>的文章,当时并不在意,做过asp虚拟主机的朋友可能都知道,即对每一个用户都设置一个独立的服务器用户和单个目录的操作权限,能够基本上解决asp的fso问题. 在网上无意中发现了一个叫做webadmin的asp.net-webshell,对自己的服务器进行测试的时候,让我大吃一惊,居然对我服务器的c盘有读取的

ASP.NET虚拟主机的重大安全隐患

asp.net|安全|安全隐患|虚拟主机 说明:本文中所有程序均在Windows 2000 Server中文版 + SP2上编译运行无误开发环境:.Net 框架1.0 Version 1.0.3705 一.ASP.NET虚拟主机存在的重大隐患 我曾经在WWW.BRINKSTER.COM申请了一个免费的ASP.NET空间,上传了两个程序,其中一个查看目录和文件的程序证明我的判断:ASP共享空间服务器存在的一个安全问题,在 ASP+ 共享空间服务器中依然存在并且变得更加难以防范!通过这个程序我可以浏