1. login.asp: 登录页面,包含用户名和密码输入框,以及基本的HTML表单验证。
  2. check_login.asp: 处理登录逻辑的核心页面,它会验证用户名和密码,并使用Session来管理用户登录状态。
  3. welcome.asp: 登录成功后跳转到的欢迎页面,会显示用户名并提供一个退出登录的链接。
  4. logout.asp: 处理用户退出登录,并销毁Session。
  5. database_connection.asp: 一个独立的数据库连接文件,方便复用。
  6. style.css: 一个简单的CSS样式文件,让登录页面看起来更美观。

第1步:准备工作 - 创建数据库和表

在开始之前,你需要一个数据库来存储用户信息,这里以 Microsoft Access 为例,因为它与ASP(特别是经典ASP)集成非常方便。

做一个用asp的登录网页模板下载
(图片来源网络,侵删)
  1. 打开 Microsoft Access,创建一个新的空白数据库,命名为 user_db.mdb
  2. 在数据库中,创建一个新表,命名为 users
  3. users 表设计以下字段:
字段名称 数据类型 说明
id 自动编号 主键,用户唯一ID
username 文本 用户名,"admin"
password 文本 密码(注意:实际项目中密码应加密存储,这里为了演示,我们使用明文)
full_name 文本 用户全名,"管理员"
  1. 保存 user_db.mdb 文件。
  2. 重要:为了能让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 (登录页面)

这是用户访问的第一个页面。

做一个用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步:如何使用这个模板

  1. 确保服务器环境:你有一个支持ASP的服务器环境,最常见的是 IIS (Internet Information Services)
  2. 放置文件:将上面创建的所有文件(login.asp, check_login.asp, welcome.asp, logout.asp, database_connection.asp, style.css)以及你创建的 user_db.mdb 数据库文件,全部复制到你的网站根目录下的 login_template 文件夹中。
  3. 设置权限:再次确认 IUSR_计算机名user_db.mdb 文件有读写权限。
  4. 访问:在浏览器中访问 http://你的服务器地址/login_template/login.asp
  5. 测试
    • 尝试使用数据库中存在的用户名和密码登录,应该能成功进入 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") 是一个标志,用于判断用户是否已登录,在每个需要保护的页面的开头,都应该加入类似的检查代码。
做一个用asp的登录网页模板下载
(图片来源网络,侵删)