我想使用session来追踪用户,从用户开始登陆到显示该用户的详细记录以及追踪下一步的实际操作,想问的是如何设计这个session变量,从哪里开始又从哪里放弃?还有需要在global中写代码么?
可以把每一次访问的网页加入到session 的变量里面。然后写道数据库里面
可以将网页名称写道Session的变量里面
session("name")=studentnum
放弃就从该学生退出
session.abandon
直接在你的登陆页面创建Session就行了(其实创建Session不需要什么特殊的过程,也不用在特定的页面,在任何页面只要你第一次使用一个Session变量,他就会自动建立,并可其他页面使用它),不需用global.asa
在判断用户登陆成功后,加上代码:
<%
Session("name")=username
Session("time")=Now()
Session("ip")=Request.ServerVariables("REMOTE_ADDR")
%>
当超过会话时间,Session会自动释放,你也可以用session.abandon
强行释放
在登陆验证成功后,加上:
<%
Session("xuehao")=number number为学号
%>
这样在需要身份验证的页面最开始加入判断:
<%
If Session("xuehao")="" then
Response.Write "你还未登陆!"
Response.End
End If
%>
如果想在某页面显示用户的学号,则加入:你的学号是<%=Session("xuehao")%>
IIS默认的会话时间即Session的生存时间是20分钟,其实你没有必要考虑和设置生存时间
许多人利用Session变量来开发ASP。这些变量与任何编程语言中通用的变量非常相似,并且具有和通用变量一样的优点和缺陷。任何命令都需要运行时间和存储空间,Session变量同样需要自己的运行时间和存储空间。过多地使用Session变量就会导致无法代码冗余,并且使服务器运行成本提高下面是我个人使用Session变量的一些主要观点和心得体会。
优点
如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。
要使WEb站点具有用户化,可以考虑使用Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site Server等的使用,已不必再将所有用户化过程置入Session变量了,而这个用户化是取决于用户喜好的。
你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放。
缺点
Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量!
当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!所以,如果在Session中置入了较大的对象,那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。
虽然“你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放”。但是,“谁”想到那儿呢?变量的含义是什么?这些都变得不很清晰。