【问题标题】:Settimeout - frameset in Asp pageSettimeout - Asp 页面中的框架集
【发布时间】:2009-08-17 09:36:01
【问题描述】:

一个经典页面由 4 个框架集组成。如果所有 4 个框架集都处于非活动状态,则登录页面超时。如何使用框架集为经典 asp 页面设置超时。

【问题讨论】:

    标签: asp-classic settimeout frameset


    【解决方案1】:

    默认会话超时为 20 分钟。您可以通过添加以下代码来更改它

    Session.Timeout (= intMinutes)
    ex: Session.Timeout= 10
    

    在您的 ASP 页面中。

    【讨论】:

    • 我认为 Session.TimeOut 是一个属性。应该是 Session.TimeOut=10。
    【解决方案2】:

    您的页面中可能有一些 JS 倒计时到您的会话超时时间(有关如何设置,请参阅 Shobans 回答)。然后,如果 JS 超时(即达到其会话超时),那么您可以将它们(客户端)重定向到您的登录页面,并在您这样做的时候退出框架。应该这样做:

    <script type="text/javascript">
    
    // Get the current server side timeout (times 1000 to convert it into JS milliseconds
    var timeout = <%= Session.TimeOut * 1000 %>;
    
    // This is the function that does the framebusting and redirecting to your login page
    function GoToLogin() {
      top.location.replace( "yourloginpage.asp" );
    }
    
    // Set it up to run when the timeout expires
    setTimeout( GoToLogin, timeout );
    
    </script>
    

    如果您的用户执行任何操作来重新加载页面,那么您的计时器就会重置,很好。但是不要把它放在你所有的框架中,你只需要在你的主要框架中,你不希望它在一个导航框架中,它可能没有任何动作,你总是会超时!

    另外一个可能是让页面自己刷新,如果它超时,那么服务器端代码可以将用户重定向到登录页面(虽然这会出现在框架中,所以你的登录页面需要frame buster 无论如何都会使用上面的 top.location 技巧)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多