我需要在用 C# 生成的GeneXus X应用程序中捕获 ASP.NET Session Tiemout 。当用户离开键盘超过 N 分钟时,我想再次请求用户/密码,而不会丢失网络表单中的数据更改
问问题
1249 次
1 回答
3
您应该考虑只延长服务器中的会话超时,这样您就不需要首先解决问题。
如果这不是一个选项,您可以创建一个用户控件,定期检查会话是否通过 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 框架中都应该足够简单。
于 2010-12-02T14:08:30.017 回答