介紹ASP中Session物件的三種方法
在ASP中,有兩個內部對象可以進行一些資訊存儲,它們是Application 對象和Session 對象,其中Application 對像是對於整個應用程式期間而言的,它對於所有訪問網站的用戶來講是共享的,而Session 是對於會話期間而言的,它僅對與當前使用者存在。
Session物件簡介
當您在電腦上操作某個應用程式時,您會開啟它,做些更改,然後關閉它,就很像對話(Session)。電腦知道您是誰,它清楚您在何時打開和關閉應用程式。然而,在因特網上問題出現了,由於HTTP位址無法保持狀態,Web伺服器並不知道您是誰以及您做了什麼。
Session 物件的主要用途 是針對每個造訪網站的使用者來儲存一些訊息,例如,當使用者登入後,我們可以在該使用者的Session中儲存資訊來標識目前使用者已登入。
Session 的原理是這樣的,當使用者第一次造訪網站時,IIS為這個使用者分配了一個標識,這個標識是一列很長的隨機字串,這個隨機字串叫做SessionID,而後伺服器將其發送給客戶端時期保存在Cookies中,接下來用戶再訪問伺服器上的其他頁面時,伺服器獲得這個SessionID,並從記憶體中獲取和這個SessionID相關的數據,放在Session物件的集合中。
Contents集合
我們可以在這個集合中儲存目前使用者的某些信息,例如下面的程式碼展示如何儲存和讀取資料:
<% '名字为username的Session集合中存储了一个“ZhangSan”字符串 Session.Contents("username") = "ZhangSan" Dim UserName '读取Session中的数据,可以省略Contents' 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><%'利用 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'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'Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"'遍历 Contents 集合Traversal_E()%><hr><h3 id="删除名为username的数据">删除名为username的数据</h3><%'删除 username 数据Session.Contents.Remove("username")'重新遍历 Contents 集合Traversal_P()%><hr><h3 id="删除所有的Session数据">删除所有的Session数据</h3><%'删除所有的数据Session.Contents.RemoveAll() Traversal_E()%>...
上面的程式碼執行後顯示如下:
這些程式碼中示範如何遍歷Session.Contents集合的兩種方法,請仔細看看。
第二個範例(SessionAbandon.asp)示範了Abandon 方法的效果,透過演示,我們看出來RemoveAll 方法和Abandon 方法的差異在於RemoveAll 僅僅刪除了目前的集合,但客戶還是使用同一個SessionID(第一個例子中SessionID 一直保持不變化)。而 Abandon 方法呼叫後,在目前頁面仍可存取 Session 集合,在關閉頁面或刷新頁面後,先前的 Session 會被刪除(本範例中 SessionID 會變更)。
程式碼如下:
<%'Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后'会使Session被删除,SessionID也就会改变Session.Abandon()'首先我们要记录一下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 '如果是第一次运行该页面,则记录当前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 中,如下圖:
多次刷新該頁面或重新開啟後,因為Abandon 方法,會使Session 刪除,SessionID 會一直改變,如下圖:
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'作用于所有动态输出的字符串%> <!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>
运行后,效果如下:
【相关推荐】
1. ASP免费视频教程
以上是介紹ASP中Session物件的三種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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