asp.net会话超时同一页面

时间:2014-09-19 09:04:17

标签: c# asp.net-mvc visual-studio-2010 session

我使用的是asp.net,我对它很陌生。我的经理给了我一个调试asp.net系统的任务。该系统的问题之一是当用户试图在文本框中长时间写入细节时,会话将超时并且最终用户无法完成输入的所有单词将消失。因此,当用户登录时,他们必须再次键入所有单词。

所以我想问一下是否有任何方法可以在会话超时之前临时保存文本?然后,当用户在会话超时后登录时,系统将直接返回到用户未管理完成写入的页面。谢谢,对不起英语不好......

3 个答案:

答案 0 :(得分:0)

更改设置您的web.config页面

<system.web>
    <sessionState timeout="480" />
</system.web>

答案 1 :(得分:0)

在web.config中使用超时,也可以使用timepan - 默认为20分钟,也不能将进程和状态服务器的超时属性设置为大于525,601分钟(1年)的值模式。

<sessionState 
    mode="[Off|InProc|StateServer|SQLServer|Custom]"
    timeout="number of minutes"............

   ....../>

答案 2 :(得分:0)

  

您可以按照此方法了解保存用户所需的内容   重新登录后再次输入相同的信息

     
      
  1. 使用计时器将页面控件值保存到数据表
  2.   
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分钟这些代码行之后,您的数据将保存在数据表中。您还可以使用相同的数据表将数据保存在数据库中。

     
      
  1. 超时后,您的页面将被重定向到登录页面或其他页面。现在棘手的部分是当您重新登录页面加载事件时,只需检查数据表是否包含任何行   如果是,那么你必须从数据表中获取数据并再次使用data填充你的控件。如果不是这意味着它是新登录而且不必做任何事情!
  2.   
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!! 


   }
                 }
  

因此,即使在超时后,您也可以保留用户输入的数据。

要了解数据表,您可以点击此链接Data table