问个问题,比较难以解决!!怎么保证session不过期!!

brando_beat 2005-07-12 12:10:42
是这样的,我在login的时候,将一些参数保存在session中,在menu页面上面我有一些链接,
客户点了链接到功能页面上面做处理,menu一直开着,但是等用户处理完业务后,再次点击menu
的其他链接的时候,因为我menu中session过期了,导致页面不能正常显示。
这种情况下面该怎么处理???
谢谢,谢绝灌水。
...全文
1746 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
bj20082005 2005-11-16
  • 打赏
  • 举报
回复
mark
微量科技 2005-10-18
  • 打赏
  • 举报
回复
好贴要顶!
brando_beat 2005-07-26
  • 打赏
  • 举报
回复
谢谢各位、我现在的解决方法是:
使用隐藏框架放入一个iframe定时刷新、但是我的刷新时间是从web.config
里面取得、代码如下:
我在我的框架的头部文件top.aspx中加入
<iframe width="1" height="1" frameborder="0" src="refresh.aspx" runat="server" ID="Iframe1"></iframe>
然后、新建一个页面refresh.aspx

页面文件:refresh.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="refresh.aspx.vb" Inherits="Menu.refresh"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>refresh</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta http-equiv="Refresh" content="<%=str%>">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="MS UI Gothic"></FONT>
</form>
</body>
</HTML>

后台文件
refresh.aspx.vb:

Imports System.IO
Public Class refresh
Inherits System.Web.UI.Page
Public str As String

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New DataSet
Dim fs As FileStream
Dim reader As StreamReader
Dim write As StreamWriter

fs = New FileStream(Server.MapPath("../Web.config"), FileMode.Open, FileAccess.Read)
reader = New StreamReader(fs)

ds.ReadXml(reader)

fs.Close()

str = CStr(ds.Tables("sessionState").Rows(0)(4) * 60 - 15) & ";URL=refresh.aspx"
End Sub

End Class

谢谢大家。

zr1982930 2005-07-15
  • 打赏
  • 举报
回复
不过期是不可能的,只能把过期时间设久一点而已!
jimu8130 2005-07-15
  • 打赏
  • 举报
回复
学习高人的方法,嘿嘿
JzeroBiao 2005-07-15
  • 打赏
  • 举报
回复
学习@
bookshop 2005-07-15
  • 打赏
  • 举报
回复
IIS上设置下相应目录的过期时间
zeusvenus 2005-07-15
  • 打赏
  • 举报
回复
用STATESERVER把过期时间设长就可以了啊,比如说600min(10h)都没问题,但需要你开state service服务。
另外,如果你的客户太长时间不动也不收回session的话逻辑上来讲也不安全啊!
kongxing 2005-07-15
  • 打赏
  • 举报
回复
hchxxzx(NET?摸到一点门槛) :
我说的客户端有操作当然是指和网站服务器有交互操作了。
session的过期时间应该设置合适,这个合适是指用户的所有正确连续操作都能在这个时间内完成,象你说的操作中间离开不应考虑在内,那不叫正确操作。或者有的人笨极,别人10分钟完成的工作他20分钟才能完成,这也不能考虑在内。再比发表文章,如果你确定在session过期时间内不能输入完,那你完全可以先输入到word文档内,在copy过来发表。
zeusvenus 2005-07-14
  • 打赏
  • 举报
回复
在配置WEB.CONFIG文件中将SESSIONMODE设置成STATESERVER并在服务器开启STATESERVICE服务;
或者配置成存在SQLSERVER中并存SESSION到SQLSERVER,把事件设长就行了。
sunnystar365 2005-07-14
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3561/3561164.xml?temp=.8413355
这是一个讨论Session过期的问题,有很多人的回答,希望对你有帮助
Session的确是一个很麻烦的问题
chxuxu 2005-07-14
  • 打赏
  • 举报
回复
我有点糊涂了,如果用定时刷新,是不是每个session变量都要在刷新时重新赋值???,借问大家具体是怎么做的??不好意思了楼主
xtxk_917 2005-07-14
  • 打赏
  • 举报
回复
改web.config
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="true" --->这一句
timeout="10000"
/>
看看行不行.请回一贴.
fphuang 2005-07-14
  • 打赏
  • 举报
回复
session与cookie同时用,一旦检测到session[""]=null,取cookie
fq_ln 2005-07-13
  • 打赏
  • 举报
回复
定时刷新页面就可以了嘛,实在不行就用Cookie吧,然而这样也可以被用户清掉
Toti 2005-07-13
  • 打赏
  • 举报
回复
up
ghchen 2005-07-13
  • 打赏
  • 举报
回复
Thristian 2005-07-13
  • 打赏
  • 举报
回复
在配置文件中把session的过期时间设成负值
hchxxzx 2005-07-13
  • 打赏
  • 举报
回复
kongxing(我心飞翔)
你的理解没有错,问题是,客户很有可能打开页面放在那边,然后他去吃饭了.吃完饭他还要回来工作呢.这时候怎么办?
客户端有操作,是说客户有刷新页面,并非说客户打开一个页面,不停地写东西,这不叫操作.
rickjelly2004 2005-07-13
  • 打赏
  • 举报
回复
就象有的人说的,加一个框架,定时的刷新一下,
比如CSDN的短信啊,你可以在这个框架中什么也不放就是为了刷新
加载更多回复(29)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧