【问题标题】:Capture ASP.NET Session Timeout in a GeneXus Application在 GeneXus 应用程序中捕获 ASP.NET 会话超时
【发布时间】:2011-04-28 17:09:27
【问题描述】:

我需要在用 C# 生成的 GeneXus X 应用程序中捕获 ASP.NET 会话超时。当用户离开键盘超过 N 分钟时,我想再次请求用户/密码,而不会丢失网络表单中数据的更改

【问题讨论】:

    标签: asp.net login session-timeout genexus


    【解决方案1】:

    您应该考虑只延长服务器中的会话超时时间,这样您就不需要首先解决问题。

    如果这不是一个选项,您可以创建一个用户控件,定期检查会话是否通过 ajax 处于活动状态,例如使用 JQuery(未测试):

    $(function() {
        setInterval(CheckSession, 10000); /*10 seconds*/
    });
    
    function CheckSession() {
        $.get("/CheckSession.aspx", function(data) {
            $("body").append("<p>" + data + "<p/>"); /*shows current user*/
            if(data = "")
               $("#loginform").fadein(200);
        });
    } 
    

    CheckSession 是一个 main/http proc,它执行类似的操作

    &httprespone.addstring(&websession.get('userid'))
    

    如果不是,请禁用屏幕按钮并以某种方式显示登录表单:

    我从未尝试过,但似乎可以。

    另一种方法是将会话检查代码附加到提交按钮,在任何 javascript 框架中都应该足够简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多