介绍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免费视频教程
以上是介绍ASP中Session对象的三种方法的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++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扫描工具漏洞检测:1、选择合适的扫描工具;2、在扫描工具中配置扫描目标;3、根据需要,配置扫描选项;4、在配置完成后,启动扫描工具开始扫描;5、扫描工具将生成一个报告,列出检测到的漏洞和安全问题;6、根据报告中的建议,修复检测到的漏洞和安全问题;7、在修复漏洞后,重新运行扫描工具,以确保漏洞已经被成功修复。

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

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年全球智能手机市场收入超过4480亿美元。即使组件短缺和COVID-19限制继续扰乱全球供

asp安全审计漏洞检测步骤:1、收集有关ASP应用程序的相关信息;2、仔细分析ASP应用程序的源代码;3、检查ASP应用程序对用户输入的验证和过滤机制;4、检查应用程序对输出数据的编码和过滤机制;5、检查应用程序的认证和会话管理机制;6、检查应用程序对文件和目录的权限控制;7、检查应用程序对错误的处理方式;8、检查应用程序的配置文件和服务器配置;9、修复漏洞。
