[英]Redirect to same page after login becuse of session time out in asp.net
[英]asp.net session time out same page
我正在使用asp.net,但是我對此很陌生。 我的經理給了我一個調試asp.net系統的任務。 該系統的問題之一是,當用戶長時間嘗試在文本框中輸入詳細信息時,會話將超時,最終所有用戶尚未完成鍵入的單詞都將消失。 因此,當用戶登錄時,他們必須再次鍵入所有單詞。
所以我想問問有什么辦法可以在會話超時之前臨時保存文本嗎? 然后,當會話超時后用戶登錄時,系統將直接返回到用戶未完成寫入的頁面。 謝謝,抱歉英語不好。
更改設置您的web.config頁面
<system.web>
<sessionState timeout="480" />
</system.web>
在web.config中使用超時,默認情況下還可以使用timespan--20分鍾,對於進程內和狀態服務器模式,timeout屬性也不能設置為大於525,601分鍾(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分鍾執行完這些代碼行后,您的數據將保存在datatable中。 您也可以使用相同的數據表將數據保存在數據庫中。
- 超時后,您的頁面將被重定向到登錄頁面或其他頁面。 現在最棘手的部分是,當您重新登錄頁面加載事件時,只需檢查數據表是否包含任何行(如果是),則只需從數據表中獲取數據並再次用數據填充控件即可。意味着它是全新的登錄名,無需執行任何操作!
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!!
}
}
因此,即使超時后,您也可以保留用戶輸入的數據。
為了了解數據表,您可以點擊此鏈接數據表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.