目錄
" & UserName & "
当前SessionID值为 <%=Session.SessionID%>
Session中存储数据
删除名为username的数据
删除所有的Session数据
您这是第一次访问该页面,当前页面的SessionID为
您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为
您第一次访问时的SessionID为
当前页面使用的CodePage是:
当前页面的SessionID是:
当前页面Session默认超时时间为:
<%=Session.Timeout%>分钟
首頁 後端開發 C#.Net教程 介紹ASP中Session物件的三種方法

介紹ASP中Session物件的三種方法

May 18, 2017 am 11:36 AM

在ASP中,有兩個內部對象可以進行一些資訊存儲,它們是Application 對象和Session 對象,其中Application 對像是對於整個應用程式期間而言的,它對於所有訪問網站的用戶來講是共享的,而Session 是對於會話期間而言的,它僅對與當前使用者存在。

Session物件簡介

當您在電腦上操作某個應用程式時,您會開啟它,做些更改,然後關閉它,就很像對話(Session)。電腦知道您是誰,它清楚您在何時打開和關閉應用程式。然而,在因特網上問題出現了,由於HTTP位址無法保持狀態,Web伺服器並不知道您是誰以及您做了什麼。

Session 物件的主要用途 是針對每個造訪網站的使用者來儲存一些訊息,例如,當使用者登入後,我們可以在該使用者的Session中儲存資訊來標識目前使用者已登入。

Session 的原理是這樣的,當使用者第一次造訪網站時,IIS為這個使用者分配了一個標識,這個標識是一列很長的隨機字串,這個隨機字串叫做SessionID,而後伺服器將其發送給客戶端時期保存在Cookies中,接下來用戶再訪問伺服器上的其他頁面時,伺服器獲得這個SessionID,並從記憶體中獲取和這個SessionID相關的數據,放在Session物件的集合中。

Contents集合

我們可以在這個集合中儲存目前使用者的某些信息,例如下面的程式碼展示如何儲存和讀取資料:

<%
&#39;名字为username的Session集合中存储了一个“ZhangSan”字符串
Session.Contents("username") = "ZhangSan"
Dim UserName
&#39;读取Session中的数据,可以省略Contents&#39;
UserName = Session.Contents("username")和下面一样
UserName = Session("username")
Response.Write("<h2 id="nbsp-nbsp-UserName-nbsp-nbsp">" & UserName & "</h2>")
%>
登入後複製

Session對象有三個方法(Contents.Remove、Contents.RemoveAll、Abandon),用來刪除 Session 集合中的資料或放棄目前的Session。

第一個範例(SessionContents.asp)我們將示範如何使用Remove、RemoveAll方法,程式碼如下:

...<h3 id="当前SessionID值为-nbsp-Session-SessionID">当前SessionID值为 <%=Session.SessionID%></h3><h3 id="Session中存储数据">Session中存储数据</h3><%&#39;利用 Contents.Count 遍历 Session 的过程Sub Traversal_P() 
  Dim i  For i = 1 To Session.Contents.Count
    Response.Write("Session(""" & Session.Contents.key(i) & """) = " & Session.Contents(i))
    Response.Write("<br>")  NextEnd Sub&#39;For Each 遍历 Session.Contents 集合 Sub Traversal_E()  Dim x  For Each x In Session.Contents 
    Response.Write("Session(""" & x & """) = " & Session(x))
    Response.Write("<br>")  NextEnd Sub&#39;Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"&#39;遍历 Contents 集合Traversal_E()%><hr><h3 id="删除名为username的数据">删除名为username的数据</h3><%&#39;删除 username 数据Session.Contents.Remove("username")&#39;重新遍历 Contents 集合Traversal_P()%><hr><h3 id="删除所有的Session数据">删除所有的Session数据</h3><%&#39;删除所有的数据Session.Contents.RemoveAll()
Traversal_E()%>...
登入後複製

上面的程式碼執行後顯示如下:

介紹ASP中Session物件的三種方法

這些程式碼中示範如何遍歷Session.Contents集合的兩種方法,請仔細看看。

第二個範例(SessionAbandon.asp)示範了Abandon 方法的效果,透過演示,我們看出來RemoveAll 方法和Abandon 方法的差異在於RemoveAll 僅僅刪除了目前的集合,但客戶還是使用同一個SessionID(第一個例子中SessionID 一直保持不變化)。而 Abandon 方法呼叫後,在目前頁面仍可存取 Session 集合,在關閉頁面或刷新頁面後,先前的 Session 會被刪除(本範例中 SessionID 會變更)。

程式碼如下:

<%&#39;Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后&#39;会使Session被删除,SessionID也就会改变Session.Abandon()&#39;首先我们要记录一下SessionID的值,存放到Cookies中Dim numVisits, SID
Response.Cookies("numVisits").Expires = DateAdd("d", 10, Now)
Response.Cookies("SID").Expires = DateAdd("d", 10, Now)
SID = Request.Cookies("SID")
numVisits = Request.Cookies("numVisits")If numVisits = "" or SID = "" Then
  &#39;如果是第一次运行该页面,则记录当前Sessio nID值  Response.Cookies("numVisits") = 1
  Response.Cookies("SID") = Session.SessionID%>
  <h3 id="您这是第一次访问该页面-当前页面的SessionID为">您这是第一次访问该页面,当前页面的SessionID为</h3>
  <h2><%=Session.SessionID%></h2><%Else%>
  <hr>
  <h3 id="您这是第-numVisits-次访问该页面-当前页面的SessioID为">您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为</h3>
  <h2><%=Session.SessionID%></h2>
  <h3 id="您第一次访问时的SessionID为">您第一次访问时的SessionID为</h3>
  <h2><%=Request.Cookies("SID")%></h2><%
  numVisits = numVisits + 1
  Response.Cookies("numVisits") = numVisitsEnd If%>
登入後複製

第一次執行該頁面,會先記錄目前的SessionID 到Cookies 中,如下圖:

介紹ASP中Session物件的三種方法

多次刷新該頁面或重新開啟後,因為Abandon 方法,會使Session 刪除,SessionID 會一直改變,如下圖:

介紹ASP中Session物件的三種方法

CodePage、SessionID、Timeout 屬性

CodePage 屬性定義了目前頁面輸出內容的字元集,這裡的字元集以數字表示。例如

936 表示 Chinese Simplified (GB2312) 簡體中文

950 表示 Chinese Traditional (Big5) 繁體中文

#65001 Traditional (Big5) 繁體中文

#65001 #特別說明

<%@CODEPAGE="65001"%>作用於所有靜態的字串 
Response.CodePage, Session.CodePage 作用於所有動態輸出的字串 
Response.CodePage 作用範圍只在於 a single response 
Session.CodePage 的作用範圍卻是在 all responses in a session

SessionID 属性可以获得当前用户的 SessionID,有时候在客户端浏览器不支持 Cookies 的情况下,你可以将 SessionID 附加在客户端的 QueryString 变量中,从而标识每一个客户端。

Timeout 属性用于设定客户的 Session 超时期。客户对于 SessionID 并不是长期占有的,在其一段时间内没有和服务器端进行任何交互后,服务器端将放弃该 Session。

下面的代码(SessionCST.asp)中将演示这个三个属性的使用方法,代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage = 65001&#39;作用于所有动态输出的字符串%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CodePage、SessionID、TimeOut属性的应用</title>
</head>
<body>
<h3 id="当前页面使用的CodePage是">当前页面使用的CodePage是:</h3>
<h2><%=Session.CodePage%></h2>
<hr>
<h3 id="当前页面的SessionID是">当前页面的SessionID是:</h3>
<h2><%=Session.SessionID%></h2>
<hr>
<h3 id="当前页面Session默认超时时间为">当前页面Session默认超时时间为:</h3>
<h2 id="Session-Timeout-分钟"><%=Session.Timeout%>分钟</h2>
</body>
</html>
登入後複製

运行后,效果如下:

介紹ASP中Session物件的三種方法

【相关推荐】

1. ASP免费视频教程

2. 详解ASP中Session的使用技巧

3. ASP session简单示例

4. 关于ASP中session的详细介绍

5. 教你解决ASP session丢失的方法

以上是介紹ASP中Session物件的三種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

asp內建物件有哪些 asp內建物件有哪些 Nov 09, 2023 am 11:32 AM

asp內建物件有Request、Response、Session、Application、Server、Session.Contents、Application.Contents、Server.CreateObject、Server.MapPath、Server.Execute、Server.Transfer等。詳細介紹:1、Request:表示HTTP請求物件等等。

asp開發工具有哪些 asp開發工具有哪些 Oct 23, 2023 am 11:02 AM

asp開發工具有Visual Studio、Dreamweaver、FrontPage、EditPlus、UltraEdit、SQL Server Management Studio、RAD Studio、Delphi、Asp.NET和Oracle SQL Developer。

asp掃描工具漏洞偵測 asp掃描工具漏洞偵測 Oct 13, 2023 am 10:45 AM

asp掃描工具漏洞偵測:1、選擇適當的掃描工具;2、在掃描工具中設定掃描目標;3、根據需要,設定掃描選項;4、在設定完成後,啟動掃描工具開始掃描;5、掃描工具將產生一個報告,列出偵測到的漏洞和安全性問題;6、根據報告中的建議,修復偵測到的漏洞和安全性問題;7、在修復漏洞後,重新執行掃描工具,以確保漏洞已被成功修復。

asp怎麼手動漏洞偵測 asp怎麼手動漏洞偵測 Oct 13, 2023 am 10:49 AM

asp手動偵測漏洞:1、檢查ASP應用程式對使用者輸入的驗證和過濾機制;2、檢查ASP應用程式對輸出資料的編碼和過濾機制;3、檢查ASP應用程式的認證和會話管理機制;4、檢查ASP應用程式對檔案和目錄的權限控制;5、檢查ASP應用程式對錯誤的處理方式;6、檢查ASP應用程式對資料庫的安全性;7、檢查ASP應用程式的設定檔和伺服器設定。

asp漏洞偵測有哪些方法 asp漏洞偵測有哪些方法 Oct 13, 2023 am 10:42 AM

方法有:1、使用專門的漏洞掃描工具;2、手動測試來發現和驗證ASP應用程式中的漏洞;3、進行安全審計,檢查ASP應用程式的程式碼和設定檔;4、使用漏洞利用框架; 5、對ASP應用程式的程式碼進行審查。

asp如何連接access資料庫 asp如何連接access資料庫 Oct 18, 2023 am 11:33 AM

連接的方法:1、使用ADO連接資料庫;2、使用DSN連接資料庫;3、使用連接字串連接資料庫。

由於 iPhone 13 推動創紀錄的收入,iPhone 平均售價上漲 14% 由於 iPhone 13 推動創紀錄的收入,iPhone 平均售價上漲 14% Apr 14, 2023 pm 03:22 PM

iPhone平均售價(ASP)去年達到兩位數成長,較去年同期成長14%。 iPhone13的流行是關鍵驅動因素,幫助推動全球智慧型手機市場整體創下$448B的年收入紀錄。儘管零件短缺,智慧型手機市場仍同比增長7%,其中蘋果佔了迄今為止最大的份額…市場情報公司Counterpoint今天發布了最新估計。根據Counterpoint的MarketMonitorService的最新研究,2021年全球智慧型手機市場收入超過4,480億美元。即使組件短缺和COVID-19限制繼續擾亂全球供

asp安全審計漏洞偵測怎麼做 asp安全審計漏洞偵測怎麼做 Oct 13, 2023 am 10:54 AM

asp安全審計漏洞偵測步驟:1、收集有關ASP應用程式的相關資訊;2、仔細分析ASP應用程式的原始程式碼;3、檢查ASP應用程式對使用者輸入的驗證和過濾機制;4、檢查應用程式對輸出資料的編碼和過濾機制;5、檢查應用程式的認證和會話管理機制;6、檢查應用程式對檔案和目錄的權限控制;7、檢查應用程式對錯誤的處理方式;8、檢查應用程式的設定檔和伺服器配置;9、修復漏洞。

See all articles