Cookie 是伺服器寫入用戶端瀏覽器的小型文字檔,常用於識別使用者、記錄偏好設定、追蹤瀏覽行為。
<%
' 必須在 <html> 標籤之前
Response.Cookies("username") = "Alex"
' 設定過期日 (不設定則為 Session Cookie,瀏覽器關閉即失效)
Response.Cookies("username").Expires = #May 10, 2025#
%>
注意:Response.Cookies 必須在任何 HTML 輸出之前呼叫。
<%
Dim userName
userName = Request.Cookies("username")
Response.Write("歡迎回來, " & userName)
%>
單一 Cookie 名稱下可儲存多組鍵值對:
<%
Response.Cookies("user")("name") = "John"
Response.Cookies("user")("email") = "john@example.com"
Response.Cookies("user")("role") = "admin"
Response.Cookies("user").Expires = DateAdd("d", 30, Now()) ' 30 天後過期
%>
<!DOCTYPE html>
<html><body>
<%
Dim x, y
For Each x In Request.Cookies
Response.Write("<p>")
If Request.Cookies(x).HasKeys Then
For Each y In Request.Cookies(x)
Response.Write(x & ":" & y & "=" & Request.Cookies(x)(y) & "<br>")
Next
Else
Response.Write(x & "=" & Request.Cookies(x) & "<br>")
End If
Response.Write("</p>")
Next
%>
</body></html>
輸出範例:
username=Alex
user:name=John
user:email=john@example.com
user:role=admin
<a href="welcome.asp?fname=John&lname=Smith">前往歡迎頁</a>
' welcome.asp
fname = Request.QueryString("fname")
lname = Request.QueryString("lname")
<form method="post" action="welcome.asp">
<input type="hidden" name="fname" value="John">
<input type="hidden" name="lname" value="Smith">
<input type="submit" value="送出">
</form>
現代最佳實務:敏感資料請使用 Session/Token (JWT) 儲存在伺服器端或加密儲存,Cookie 僅存放非敏感識別碼。設定 HttpOnly、Secure、SameSite 屬性提升安全性 (ASP 傳統寫法需自行組標頭字串)。