介绍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>" & UserName & "</h2>") %>
Session对象有三个方法(Contents.Remove、Contents.RemoveAll、Abandon),用来删除 Session 集合中的数据或放弃当前的 Session。
第一个例子(SessionContents.asp)我们将演示如何使用 Remove、RemoveAll方法,代码如下:
...<h3>当前SessionID值为 <%=Session.SessionID%></h3><h3>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>删除名为username的数据</h3><%'删除 username 数据Session.Contents.Remove("username")'重新遍历 Contents 集合Traversal_P()%><hr><h3>删除所有的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>您这是第一次访问该页面,当前页面的SessionID为</h3> <h2><%=Session.SessionID%></h2><%Else%> <hr> <h3>您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为</h3> <h2><%=Session.SessionID%></h2> <h3>您第一次访问时的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 表示 Unicode (UTF-8)
特别说明
<%@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>当前页面使用的CodePage是:</h3> <h2><%=Session.CodePage%></h2> <hr> <h3>当前页面的SessionID是:</h3> <h2><%=Session.SessionID%></h2> <hr> <h3>当前页面Session默认超时时间为:</h3> <h2><%=Session.Timeout%>分钟</h2> </body> </html>
运行后,效果如下:
【相关推荐】
1. ASP免费视频教程
Atas ialah kandungan terperinci 介绍ASP中Session对象的三种方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Objek terbina dalam ASP termasuk Permintaan, Respons, Sesi, Aplikasi, Pelayan, Sesi.Kandungan, Aplikasi.Kandungan, Pelayan.CreateObject, Pelayan.MapPath, Server.Execute, Server.Transfer, dsb. Pengenalan terperinci: 1. Permintaan: mewakili objek permintaan HTTP, dsb.

Alat pembangunan ASP termasuk Visual Studio, Dreamweaver, FrontPage, EditPlus, UltraEdit, SQL Server Management Studio, RAD Studio, Delphi, Asp.NET dan Oracle SQL Developer.

Pengesanan kelemahan alat pengimbasan ASP: 1. Pilih alat pengimbasan yang sesuai 2. Konfigurasikan sasaran pengimbasan dalam alat pengimbasan 3. Konfigurasikan pilihan pengimbasan seperti yang diperlukan 4. Selepas konfigurasi selesai, mulakan alat pengimbasan; . Alat pengimbasan Laporan akan dihasilkan yang menyenaraikan kelemahan dan isu keselamatan yang dikesan 6. Betulkan kelemahan dan isu keselamatan yang dikesan mengikut cadangan dalam laporan 7. Selepas membetulkan kelemahan, jalankan semula alat pengimbasan untuk memastikan bahawa kelemahan telah berjaya dieksploitasi pembaikan.

Pengesanan kelemahan manual ASP: 1. Semak mekanisme pengesahan dan penapisan aplikasi ASP untuk input pengguna 2. Semak mekanisme pengekodan dan penapisan aplikasi ASP untuk data keluaran 3. Semak mekanisme pengurusan sesi dan pengesahan aplikasi ASP; Kawalan kebenaran aplikasi ASP pada fail dan direktori 5. Semak pengendalian ralat aplikasi ASP 6. Semak keselamatan pangkalan data aplikasi ASP 7. Semak fail konfigurasi dan konfigurasi pelayan;

Kaedah termasuk: 1. Gunakan alat pengimbasan kerentanan khusus; 2. Ujian manual untuk menemui dan mengesahkan kelemahan dalam aplikasi ASP; kod aplikasi ASP.

Kaedah sambungan: 1. Gunakan ADO untuk menyambung ke pangkalan data 2. Gunakan DSN untuk menyambung ke pangkalan data 3. Gunakan rentetan sambungan untuk menyambung ke pangkalan data;

Harga jualan purata (ASP) iPhone mencapai pertumbuhan dua angka tahun lepas, meningkat 14% tahun ke tahun. Populariti iPhone 13 adalah pemacu utama, membantu mendorong pasaran telefon pintar global secara keseluruhan kepada rekod pendapatan tahunan sebanyak $448B. Walaupun kekurangan alat ganti, pasaran telefon pintar berkembang 7% tahun ke tahun, dengan Apple mengambil bahagian terbesar... Firma risikan pasaran Counterpoint mengeluarkan anggaran terbarunya hari ini. Menurut penyelidikan terkini daripada MarketMonitorService Counterpoint, hasil pasaran telefon pintar global akan melebihi AS$448 bilion pada 2021. Walaupun kekurangan komponen dan sekatan COVID-19 terus mengganggu bekalan global

Langkah-langkah pengesanan kelemahan audit keselamatan ASP: 1. Kumpul maklumat yang berkaitan tentang aplikasi ASP 2. Berhati-hati menganalisis kod sumber aplikasi ASP 3. Semak mekanisme pengesahan dan penapisan aplikasi ASP untuk input pengguna; mekanisme penapisan data keluaran; 5. Semak mekanisme pengesahan dan pengurusan sesi aplikasi 6. Semak kawalan kebenaran aplikasi pada fail dan direktori 7. Semak pengendalian ralat aplikasi; ; 9. Betulkan kelemahan.
