对你来说,最好的方法是什么? 我希望我的应用程序的所有页面都超时20分钟但是4.我希望这4页有60分钟超时..
最好的方法是什么?我是否要在页面的构造函数中设置Session.timeout?还有其他办法吗?
由于
答案 0 :(得分:4)
您可以创建自定义基页(继承自System.Web.UI.Page),在Page_Init处理程序中设置会话超时,然后将这四个页面设置为从您的自定义基页继承。这为您提供了一个管理会话超时值的地方。
答案 1 :(得分:1)
您可以通过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>
答案 2 :(得分:1)
确保也为应用程序池设置空闲超时:
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>