login.asp: 登录页面,包含用户名和密码输入框,以及基本的HTML表单验证。check_login.asp: 处理登录逻辑的核心页面,它会验证用户名和密码,并使用Session来管理用户登录状态。welcome.asp: 登录成功后跳转到的欢迎页面,会显示用户名并提供一个退出登录的链接。logout.asp: 处理用户退出登录,并销毁Session。database_connection.asp: 一个独立的数据库连接文件,方便复用。style.css: 一个简单的CSS样式文件,让登录页面看起来更美观。
第1步:准备工作 - 创建数据库和表
在开始之前,你需要一个数据库来存储用户信息,这里以 Microsoft Access 为例,因为它与ASP(特别是经典ASP)集成非常方便。

(图片来源网络,侵删)
- 打开 Microsoft Access,创建一个新的空白数据库,命名为
user_db.mdb。 - 在数据库中,创建一个新表,命名为
users。 - 为
users表设计以下字段:
| 字段名称 | 数据类型 | 说明 |
|---|---|---|
id |
自动编号 | 主键,用户唯一ID |
username |
文本 | 用户名,"admin" |
password |
文本 | 密码(注意:实际项目中密码应加密存储,这里为了演示,我们使用明文) |
full_name |
文本 | 用户全名,"管理员" |
- 保存
user_db.mdb文件。 - 重要:为了能让IIS(Internet Information Services)的匿名用户账户(通常是
IUSR_计算机名)访问这个数据库文件,请右键点击user_db.mdb文件 -> 属性 -> 安全 选项卡,添加IUSR_计算机名用户,并给予其“读取和写入”的权限。
第2步:创建文件并复制代码
在你的网站根目录下(C:\inetpub\wwwroot\),创建一个名为 login_template 的文件夹,然后在该文件夹中,依次创建以下文件,并将对应的代码复制进去。
文件 1: database_connection.asp (数据库连接文件)
这个文件封装了数据库连接的逻辑,方便其他页面调用。
<%
' 数据库连接信息
' 请根据你的实际情况修改以下路径
' Server.MapPath 用于将虚拟路径转换为服务器上的物理路径
dbPath = Server.MapPath("user_db.mdb")
' 创建 ADO Connection 对象
Set conn = Server.CreateObject("ADODB.Connection")
' 设置连接字符串,这里使用的是 Access 的 OLE DB 驱动
' 如果你的系统是64位,可能需要使用 "Microsoft.ACE.OLEDB.12.0"
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
' 打开数据库连接
conn.Open connString
%>
文件 2: style.css (样式文件)
这个文件会让你的登录页面看起来更专业。
/* body 样式 */
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
/* 登录容器样式 */
.login-container {
background-color: #fff;
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
width: 350px;
text-align: center;
}
样式 */
.login-container h2 {
color: #333;
margin-bottom: 20px;
}
/* 输入框组样式 */
.input-group {
margin-bottom: 15px;
text-align: left;
}
.input-group label {
display: block;
margin-bottom: 5px;
color: #555;
}
.input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box; /* 确保padding不会影响宽度 */
}
/* 提交按钮样式 */
.btn-submit {
width: 100%;
padding: 12px;
background-color: #007bff;
border: none;
border-radius: 4px;
color: white;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.btn-submit:hover {
background-color: #0056b3;
}
/* 错误信息样式 */
.error-message {
color: #d9534f;
margin-bottom: 15px;
font-size: 14px;
}
文件 3: login.asp (登录页面)
这是用户访问的第一个页面。

(图片来源网络,侵删)
<%@ Language=VBScript %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">用户登录</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="login-container">
<h2>用户登录</h2>
<% ' 如果URL中有error参数,则显示错误信息 %>
<% If Request.QueryString("error") = "1" Then %>
<div class="error-message">
用户名或密码错误,请重试!
</div>
<% End If %>
<form action="check_login.asp" method="post" onsubmit="return validateForm()">
<div class="input-group">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
</div>
<div class="input-group">
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
</div>
<button type="submit" class="btn-submit">登录</button>
</form>
</div>
<script>
function validateForm() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username.trim() == "") {
alert("请输入用户名!");
return false;
}
if (password.trim() == "") {
alert("请输入密码!");
return false;
}
return true;
}
</script>
</body>
</html>
文件 4: check_login.asp (登录验证逻辑)
这是处理登录请求的核心页面。
<%@ Language=VBScript %>
<%
' 1. 接收表单数据
Dim username, password
username = Request.Form("username")
password = Request.Form("password")
' 2. 简单的数据验证(防止SQL注入的初级方法)
If username = "" Or password = "" Then
Response.Redirect("login.asp?error=1")
Response.End()
End If
' 3. 连接数据库并查询
' 包含数据库连接文件
Server.Execute("database_connection.asp")
' 创建 ADO Recordset 对象
Set rs = Server.CreateObject("ADODB.Recordset")
' 构建SQL查询语句
' 注意:为了安全,生产环境中应使用参数化查询,但经典ASP实现较复杂。
' 这里使用简单的查询,并确保用户输入已进行基本过滤。
sql = "SELECT * FROM users WHERE username = '" & Replace(username, "'", "''") & "' AND password = '" & Replace(password, "'", "''") & "'"
' 执行查询
rs.Open sql, conn
' 4. 检查查询结果
If Not rs.EOF Then
' 登录成功!
' 创建Session变量,记录用户登录状态和用户名
Session("isLoggedIn") = True
Session("username") = rs("username")
Session("full_name") = rs("full_name")
' 关闭记录集和连接
rs.Close
conn.Close
' 跳转到欢迎页面
Response.Redirect("welcome.asp")
Else
' 登录失败!
' 关闭记录集和连接
rs.Close
conn.Close
' 跳转到登录页面,并附带错误参数
Response.Redirect("login.asp?error=1")
End If
' 释放对象
Set rs = Nothing
Set conn = Nothing
%>
文件 5: welcome.asp (登录成功后的欢迎页面)
只有登录成功的用户才能访问这个页面。
<%@ Language=VBScript %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">欢迎页面</title>
<style>
body { font-family: Arial, sans-serif; background-color: #e9ecef; padding: 20px; }
.welcome-box { background-color: #fff; padding: 20px; border-radius: 8px; max-width: 600px; margin: auto; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
h1 { color: #28a745; }
a { color: #007bff; text-decoration: none; }
a:hover { text-decoration: underline; }
</style>
</head>
<body>
<div class="welcome-box">
<%
' 检查用户是否已登录
If Session("isLoggedIn") <> True Then
' 如果未登录,则重定向到登录页面
Response.Redirect("login.asp")
Response.End()
End If
' 从Session中获取用户名
Dim loggedInUser
loggedInUser = Session("full_name")
%>
<h1>欢迎您,<%= loggedInUser %>!</h1>
<p>您已成功登录系统。</p>
<p>这是一个受保护的页面,只有登录用户才能看到。</p>
<p><a href="logout.asp">点击这里退出登录</a></p>
</div>
</body>
</html>
文件 6: logout.asp (退出登录)
处理用户退出登录的请求。
<%@ Language=VBScript %>
<%
' 1. 销毁所有Session变量
Session.Abandon()
' 2. 重定向到登录页面
Response.Redirect("login.asp")
%>
第3步:如何使用这个模板
- 确保服务器环境:你有一个支持ASP的服务器环境,最常见的是 IIS (Internet Information Services)。
- 放置文件:将上面创建的所有文件(
login.asp,check_login.asp,welcome.asp,logout.asp,database_connection.asp,style.css)以及你创建的user_db.mdb数据库文件,全部复制到你的网站根目录下的login_template文件夹中。 - 设置权限:再次确认
IUSR_计算机名对user_db.mdb文件有读写权限。 - 访问:在浏览器中访问
http://你的服务器地址/login_template/login.asp。 - 测试:
- 尝试使用数据库中存在的用户名和密码登录,应该能成功进入
welcome.asp页面。 - 尝试使用错误的用户名或密码登录,应该会停留在
login.asp页面并显示错误信息。 - 在浏览器中直接访问
http://你的服务器地址/login_template/welcome.asp,应该会被自动重定向到登录页面,因为你尚未登录。 - 登录成功后,点击“退出登录”链接,Session会被销毁,再访问
welcome.asp也会被重定向到登录页。
- 尝试使用数据库中存在的用户名和密码登录,应该能成功进入
重要提示
- 密码安全:这个模板中的密码是明文存储的,仅用于学习和演示,在实际的商业项目中,你必须对用户密码进行加密(例如使用 MD5, SHA256, Bcrypt 等哈希算法)后再存储到数据库中,在验证时,也是将用户输入的密码用同样的方法加密后,再与数据库中的密文进行比较。
- SQL注入:
check_login.asp中的SQL查询虽然做了简单的替换,但仍然不是最安全的,在生产环境中,强烈建议使用参数化查询来防止SQL注入攻击,在经典ASP中,这通常通过Command对象来实现。 - 会话管理:Session机制是管理用户登录状态的标准方法。
Session("isLoggedIn")是一个标志,用于判断用户是否已登录,在每个需要保护的页面的开头,都应该加入类似的检查代码。

(图片来源网络,侵删)
