asp.net会话超时同一页面
本文关键字:一页 超时 net 会话 asp | 更新日期: 2023-09-27 18:22:25
我正在使用asp.net,我对它很陌生。我的经理给了我一项任务,要调试一个asp.net系统。该系统的一个问题是,当用户长时间试图在文本框中写入详细信息时,会话将超时,最终用户尚未键入的所有单词都将消失。因此,当用户登录时,他们必须再次键入所有单词。
所以我想问一下,有没有什么方法可以在会话结束前临时保存文本?然后,当用户在会话超时后登录时,系统将直接返回到用户未管理完成写入的页面。谢谢并为糟糕的英语感到抱歉。。。
更改web.config页面的设置
<system.web>
<sessionState timeout="480" />
</system.web>
在web.config中使用timeout,也可以使用时间跨度--默认为20分钟,对于进程内和状态服务器模式,timeout属性不能设置为大于525601分钟(1年)的值。
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"............
....../>
您可以按照这种方法来保存用户重新登录后再次键入相同的信息
- 使用计时器将页面控件值保存到数据表
protected void Page_Load(object sender, EventArgs e)
{
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval=600000;//10 min timer
aTimer.Enabled=true;
}
DataTable table = new DataTable();
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
// code to save data in datatable;
//like
table.Clear();//Refresh the table
table.Columns.Add("name", typeof(string));//No need to create column again and again.As i am doing here :|
table.Rows.Add(TextBox1.Text);//This is just sample code
}
在每10分钟完成这些代码行之后,您的数据将保存在数据表中。您也可以使用相同的数据表将数据保存在数据库中。
- 超时后,您的页面将被重定向到登录或其他页面。现在棘手的部分是,当您在页面加载事件中重新登录时,只需检查数据表是否包含任何行如果是,那么你只需要从数据表中获取数据,然后用数据再次填充你的控件。如果不是,这意味着它是新登录,不需要做任何事情
protected void Page_Load(object sender, EventArgs e)
{
if(table!=null)
if(table .Rows.Count>0)
{
Textbox1.Text=table.Row[0][0].ToString();//In this way you can fill controls again
//And user need not to type data again!!
}
}
因此,通过这种方式,即使在超时之后,也可以保留用户输入的数据。
为了理解数据表,您可以点击以下链接数据表