首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> ASP 程式設計 >> ASP 入門教學

ASP 入門教學:Response.Cookies 集合實作使用者登入記憶

     編輯:ASP 入門教學

Cookie 是伺服器在客戶端瀏覽器儲存少量資料的機制,Response.Cookies 負責寫入,Request.Cookies 負責讀取。由於 HTTP 無狀態,Cookie 成為辨識回訪使用者的關鍵。

Cookie 寫入語法

Response.Cookies(Cookie名稱)[(Key)] = 值
Response.Cookies(Cookie名稱).屬性 = 值
  • Key(可選):將單一 Cookie 變為字典結構,可存多組鍵值對,如 Response.Cookies("User")("UserName") = "Tom"。
  • 屬性:Expires(到期日)、Domain、Path、Secure、HasKeys。
  • 生命週期:預設為「瀏覽器關閉即失效」(Session Cookie);設定 Expires = Date() + 天數 可持久化至硬碟。
  • 寫入時機:Cookie 屬於 HTTP 回應標頭一部分,必須在任何 HTML 輸出之前寫入。

完整實作:簡易登入驗證流程

步驟 1:建立預設帳號 Cookie(4-2a1.asp)

<%
Response.Cookies("User")("UserName") = "含笑"
Response.Cookies("User")("password") = "111111"
Response.Cookies("User").Expires = Date() + 1   ' 1 天有效
%>
<html><head><title>使用者登入</title></head><body>
<center>
<form name="Form1" method="get" action="4-2a2.asp">
<p>用戶姓名:<input name="UserName1" type="text">
<p>密碼:<input name="password1" type="password">&nbsp;&nbsp;
<input type="submit" name="btnSubmit" value="提交">&nbsp;&nbsp;
<input type="reset" name="reset" value="重寫">
</form>
</center></body></html>

步驟 2:驗證並回應(4-2a2.asp)

<%@ Language="VBScript" %>
<% Response.Buffer = True %>
<html><head><title>Cookie 讀寫示範</title></head><body>
<center>
<%
Dim UserName, password, a, b
UserName = Request.QueryString("UserName1")
password = Request.QueryString("password1")
a = Request.Cookies("User")("UserName")
b = Request.Cookies("User")("password")
%>
<font size="7" color="red" face="華文彩雲">
<%
If UserName = a And password = b Then
    Response.Write "您已登入成功!"
Else
    Response.Redirect "4-2a1.asp"
End If
%>
</font>
<hr size="2" width="70%" color="#cc9999">
<%
Response.Cookies("User").Expires = Date() + 100  ' 登入成功延長至 100 天
%>
<a href="4-2a1.asp">返回上一頁</a> ***||*** <a href="4-2-2.asp">返回教材</a>
</center></body></html>

Cookie 儲存位置(依作業系統)

  • Windows 98/Me:Windows\Cookies
  • Windows 2000/XP/7/10/11:C:\Users\<使用者>\AppData\Roaming\Microsoft\Windows\Cookies(或 INetCookies)

可用開發者工具(F12 → Application/Storage → Cookies)即時檢視、編輯、刪除。

安全性與最佳實踐

風險對策
明文傳輸被竊聽設定 Response.Cookies("Name").Secure = True(僅 HTTPS 送出)
跨站腳本 (XSS) 竊取 Cookie設定 HttpOnly(ASP 原生不支援,需 IIS 7+ 模組或自行在標頭加入)
Cookie 遭竄改/偽造敏感資料加密、簽章驗證、或改用 Session/資料庫 Token
超大 Cookie 影響效能單一 Cookie ≤ 4KB,總數 ≤ 20~50 個/網域;大量資料改用 Server-side Session

進階技巧:多層級 Cookie 結構

' 寫入多層字典
Response.Cookies("Profile")("Name") = "Tom"
Response.Cookies("Profile")("Role") = "Admin"
Response.Cookies("Profile")("Theme") = "Dark"
Response.Cookies("Profile").Expires = Date() + 30

' 讀取並檢查 HasKeys
If Request.Cookies("Profile").HasKeys Then
    For Each key In Request.Cookies("Profile")
        Response.Write key & " = " & Request.Cookies("Profile")(key) & "<br>"
    Next
End If

善用 Response.Cookies 字典結構,能以單一 Cookie 名稱管理多組相關設定,減少網域 Cookie 數量上限壓力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved