修改某些页面的会话超时的最佳方法

时间:2011-06-23 13:37:13

标签: c# asp.net session

对你来说,最好的方法是什么? 我希望我的应用程序的所有页面都超时20分钟但是4.我希望这4页有60分钟超时..

最好的方法是什么?我是否要在页面的构造函数中设置Session.timeout?还有其他办法吗?

由于

3 个答案:

答案 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>