【发布时间】:2011-04-28 17:09:27
【问题描述】:
我需要在用 C# 生成的 GeneXus X 应用程序中捕获 ASP.NET 会话超时。当用户离开键盘超过 N 分钟时,我想再次请求用户/密码,而不会丢失网络表单中数据的更改
【问题讨论】:
标签: asp.net login session-timeout genexus
我需要在用 C# 生成的 GeneXus X 应用程序中捕获 ASP.NET 会话超时。当用户离开键盘超过 N 分钟时,我想再次请求用户/密码,而不会丢失网络表单中数据的更改
【问题讨论】:
标签: asp.net login session-timeout genexus
您应该考虑只延长服务器中的会话超时时间,这样您就不需要首先解决问题。
如果这不是一个选项,您可以创建一个用户控件,定期检查会话是否通过 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 框架中都应该足够简单。
【讨论】: