| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:求助:关于session对象问题
只看楼主 加入收藏
pandaxxy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-6-4
收藏
 问题点数:0 回复次数:5 
求助:关于session对象问题
我做了一个内部网站,只给特定人员察看信息用。为了解决别人绕过登录页面直接察看其它页面上的信息这个问题,所以我写了以下这段代码:
if session("username")="" then
response.redirect("logon.asp")
else
if session("section1")="no" then
response.redirect("section1_logon.asp")
end if
end if
在section1_logon.asp中我加了判定用户是否正常登录的代码
if session("username")="" then
response.redirect("logon.asp")
end if
我这个网站里面的所有信息资料分成了几个模块,每个模块的察看又需要各自的密码,所以,我在判定用户是否正常登录之后,又加入了用户是否拥有察看模块的权限的判定,session("section1")就是用来判定察看模块权限用的。如果用户在section1_logon.asp中正确输入了察看该模块section1的密码,那么session("section1")就被设置成“yes"。同样,如果用户正常登录网站,那么session("username")的值就被设置成用户的登录名。
session("username")、session("section1")等我在网站的首页中就对它们进行了初始化,session("username")=""、session("section1")="no"等。
但在实际使用过程中,我发现出现了这样的一个问题。一开始这个功能运行正常,但当我进入某个模块察看信息,随便点了几个超链接后,网页就自动给我转到网站的登录页上去了,从开始登入网站,到后来自动转到登录页,前后不超过1分钟,我试验了好几次,每次都出现这个情况。经过仔细查找原因,session("section1")的值变了,由”yes“变成"no",只要网页自动跳转一下,紧接着session("username")也变,由用户的登录名变成""。
从功能正常到回转登录页,我所进行的操作是查询了某些信息,所点的超链接就是这些信息的链接,但无论是查询还是察看那些信息,我都没有对session进行操作,那几张页面里除了开始的判定外,其他地方连session这个关键字都没有出现一下,可是,它就是莫明其妙地自动改了,改成了初始值,让我很是不明白。
哪们兄弟能帮我吗?帮我解决这个问题。
十分感谢啊!!!
搜索更多相关主题的帖子: session 对象 
2006-07-06 22:41
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

可能是session.timeout属性时间设置过短所至,session对象的timeout属性,作用就是指定某个session变量的存留在服务器上的最长时间。也就是说如果在这个时间内,程序中没有对session做过任何操作。服务器将自动把session清空或初始化为程序中设定的初始值,所以楼主在一段时间内没有对session做操作,自然就会跳转回登陆页面了。
如果用session.timeout=999(以分钟为单位)这样在999分钟内,session是不会被清空的。这个值可以自己设定。

2006-07-06 22:54
pandaxxy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-6-4
收藏
得分:0 
应该不是这个问题,session.timeout这个属性自我装上IIS以来,一直没改过,应该还是它的默认值20。在上面这个问题中,如果我不加第二级判定,也就是那个模块权限判定,那么网页自动跳转登录页面的时间还长一些。但如果在我查询结果显示页面上不加用户判定和模块权限判定的话,且其它页面上也不加模块权限判定,那么用户判定的功能在很长时间都能正常动作,与session.timeout的默认值20分钟基本相符。
从这方面看,可能是查询引起了session.timeout变短,但我无论在查询页面上还是查询结果显示页面上,都没有对其进行相关操作,我上面都说了,除了判定语句外,其他地方连session这个关键字都没有出现一下,但却引发了这个问题,实在是让人无法理解。
2006-07-06 23:13
icecool
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:20
帖 子:1215
专家分:1376
注 册:2005-3-14
收藏
得分:0 

session.timeout你可在登录时指定的,你设了session("section1")="no"这样初始值吗?

你在首页在初始化,可能你登录后,又对首页操作过,使得他又被初始化呢?


http://toorup.3v.do
loading...
2006-07-07 08:15
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

另外一种可能就是如同4楼所说,某个重要的页面IF逻辑判断语句少写或有问题,而导致某些操作把session初始化了。所以出现丢值的现象,这个就是跟代码有关系了。

2006-07-07 08:36
pandaxxy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-6-4
收藏
得分:0 
哦,那我再仔细查一查吧,谢谢了
2006-07-07 22:53
快速回复:求助:关于session对象问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012218 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved