---- 大家知道在一般的WEB 站点中,用户的访问是不受限制的,即可以访问WEB 站点上的任何信息,且访问信息的次序是不受限制的。
以http://www.xyz.com为例,用户可以访问 http://www.xyz.com,可以访问http://www.xyz.com/custom.htm。这两页访问的次序没有限制,即可以先访问http://www.xyz.com/custom.htm,也可以先访问 http://www.xyx.com.
这种灵活性对一般的用户来说是非常方便的, 但是对于某些特定的应用, 如基于WEB 的电子邮件系统( 如:http://www.hotmail.com), 基于WEB 的需要进行用户口令验证的intranet系统等必须限制用户的访问信息的次序. 它要求用户首先在登录页上输入登录信息, 然后根据用户名动态生成相应的主页. 这一般可以通过两种方式来实现控制。一,CGI方式. 二,java applet 或 activex 等前端方式.
本文介绍 CGI 方式中一种简单易用的ASP(Active Server Page) 方式. 读者如对ASP 不熟悉, 可以通过阅读以下程序得到一个初步的印象. 以下程序将以简明的方式给出整个模拟系统。 包 括 一 个SQL Server 数 据 库users
Username
Password
other
Char(10)
Char(10)
Char(50)
---- 及如下主页:global.asa(设置全局变量),check.asp(用于校验),homepage.htm(登录页),homepage1.asp(校验通过页, 用< !--#include FILE="includecheck.asp"-- > 方式包括includecheck.asp).
---- global.asa 文件如下:
< SCRIPT LANGUAGE=VBScript RUNAT=Server >
Sub Session_OnStart
set session("OBJdbConnection")=Server.CreateObject("ADODB.Connection")
session("OBJdbConnection").Open "DSN=feng2;UID=sa;PWD="
End Sub
Sub Session_OnEnd
session("OBJdbConnection").close
End Sub
< /SCRIPT >
homepage.htm 文件如下:
< html >
< head >
< meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0" >
< meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80" >
< title >Document Title< /title >
< /head >
< body >
< p align="center" > 请输入用户名与口令:< /p >
< form method="POST" action="check.asp" name="checkform" >
< div align="center" >
< center >
< p > 用户名:< input type="text" name="username" size="20" >< /p >
< /center >
< /div >
< div align="center" >< center >
< p > 口令:
< input type="password" name="password" size="20" >< /p >
< /center >
< /div >
< div align="center" >< center >
< p >< input type="submit" value=" 确 认" name="B1" >
< input type="reset" value=" 重 置" name="B2" >< /p >
< /center >< /div >
< /form >
< /body >
< /html >
check.asp 文件如下:
< %@ LANGUAGE="VBSCRIPT" % >
< %
session("username")=request.form("username")
session("password")=request.form("password")
if (session("username")="") then
response.redirect "homepage.htm"
end if
SQLQuery="SELECT * FROM users WHERE username=’"+session
("username")+"’ and password=’"+session("password")+"’"
Set List=session("OBJdbConnection").Execute(SQLQuery)
if (list.eof and list.bof) then
session("username")=""
session("password")=""
response.redirect "homepage.htm"
end if
% >
< HTML >
< HEAD >
< TITLE > 用户与口令验证过程< /TITLE >
< /HEAD >
< BODY >
你已通过用户与口令验证
< p >< a href="homepage1.asp" > 连接到下一页!< /a >< /p >
< /BODY >
< /HTML >
homepage1.asp 文件如下:
< !--#INCLUDE FILE="includecheck.asp"-- >
< html >
< head >
< title > 欢迎进入本系统< /title >
< /head >
< body >
< p align="center" > 欢迎通过认证进入本系统!< /p >
< /body >
< /html >
includecheck.asp 文件如下:
< %@ LANGUAGE="VBSCRIPT" % >
< %
’ 判断有没有先访问homepage.htm后按确定按钮
if isempty(session("username")) or isempty(session("password")) then
response.redirect "homepage.htm"
end if
’ 判断有没有顺利经过用户名与口令的验证
if session("username")="" then
response.redirect "homepage.htm"
end if
% >