對於你來說,最好的方法是什麼? 我希望我的應用程序的所有頁面都有20分鐘的超時,但是4.我希望這4個頁面有60分鐘的超時時間。修改某些頁面會話超時的最佳方法
什麼是最好的方法?是否將Session.timeout設置爲頁面的構造函數?有沒有其他方法?
感謝
對於你來說,最好的方法是什麼? 我希望我的應用程序的所有頁面都有20分鐘的超時,但是4.我希望這4個頁面有60分鐘的超時時間。修改某些頁面會話超時的最佳方法
什麼是最好的方法?是否將Session.timeout設置爲頁面的構造函數?有沒有其他方法?
感謝
您可以創建一個自定義的基本頁面(即繼承自System.Web.UI.Page),設置在Page_Init處理程序會話超時,然後設置這四個網頁,從您的自定義基地繼承頁。這給你一個地方來管理會話超時值。
謝謝,我正在考慮在構造函數中放置指令,但這是一個糟糕的主意,OnInit事件是最好的! :-) – bAN
您可以通過web.config中配置此:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<sessionState timeout="20"/>
<location path="Page1.aspx">
<system.web>
<sessionState timeout="60"/>
</system.web>
</location>
<location path="Page2.aspx">
<system.web>
<sessionState timeout="60"/>
</system.web>
</location>
<location path="Page3.aspx">
<system.web>
<sessionState timeout="60"/>
</system.web>
</location>
</configuration>
一定要設置應用程序池空閒超時,以及:
http://weblogs.asp.net/aghausman/archive/2009/02/20/prevent-request-timeout-in-asp-net.aspx
根據該文檔,你可以隨時設置超時時間。當然,它必須在向服務器發送請求的時候! :-)
您可以實現自定義頁面的屬性,如:
using System;
System.Web.SessionState;
public class TimeoutControlPage: System.Web.UI.Page {
public int Timeout {
get { return Session.Timeout; }
set { Session.Timeout = value; }
}
}
,然後下面的頁面另存爲 「Test.aspx文件」:
<%@ Page Language="C#" Timeout="60" Inherits="TimeoutControlPage" %>
<html>
<body>
</body>
</html>
這些是網頁全部在一個目錄中?通過他們自己? – Oded
這些頁面位於相同的目錄中,但與其他頁面混合在一起。 – bAN