有一项目,包含多个页面,每个页面使用若干session保存变量。请教如何实现:任何一个页面中的任何一个session变量过期,程序都将跳转至default.htm。
前提是我不想在每个页面中都手动写:
if(session["name"] == null)
{
    Response.Redirect("default.htm");
}
而是想在web.config或者global或者其他什么地方进行集中配置。
谢谢大家,祝大家春节愉快!

解决方案 »

  1.   

    你如果是要用到SESSION的话
    如果SESSION掉了
    反正程序都会出错
    就在统一页面处理那里去配置吧
      

  2.   

    在web.config中定义了:
    <customErrors defaultRedirect="errorpage.aspx" mode="On" />
      

  3.   

    To:yichuan1982(亦川——四川新津)我正在使用<customErrors defaultRedirect="errorpage.aspx" mode="On" />这一方法,但这种方法的小缺点在于:我无法得知究竟是因为session过期导致跳转还是由于页面中其他错误导致跳转,无法在errorpage.aspx中给出提示。
      

  4.   

    试试将Session保存在State Server里:
    1.启动服务“ASP.NET State Service”,
    2.然后,修改web.config:
        <sessionState 
                mode="StateServer"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="140000" 
        />注意://mode="StateServer"这种模式下即使修改页面也不会丢失session!timeout="140000" 这里可以设大点!!!
    当然:
    mode="InProc"如果你的模式为这种,修改页面的时候会丢失session!!!!!!
      

  5.   

    非常感谢 yb2008的建议,但是老板的要求不是使session不过期,而是过期后自动跳转……还是要多谢您的指点。
      

  6.   

    我们的做法是所有要访问Session的地方都用同一个方法来进行,这样就可以在这个方法中进行判断并跳转了
      

  7.   

    To: haoco
    的确是好办法,以后一定遵循这个建议,谢谢!
      

  8.   

    建个.ascx文件 ,在里面写验证代码。使用的时候拖过去就行了
    或者在Handler,Module里处理