Hig*_*son 6 ajax session jquery asp-classic
我正在构建一个使用JQuery和AJAX调用系统来处理服务器内容的经典ASP页面.
该系统需要用户登录.我正在使用会话来存储用户名.
问题是会话在默认的20分钟后超时,并且用户被重定向到登录页面.我假设由于某种原因,AJAX调用不维护会话.
这就是我做事的方式:
当用户登录时,我发布了一个AJAX调用,如下所示:
$.ajax({
type: "POST",
url: "admin/ajax/signin.asp",
data: {
'username': username,
'userpassword': userpassword
},
cache: false,
success: function(data, textStatus, jqXHR) {
if (jqXHR.getResponseHeader('REQUIRES_AUTH') === '1'){
$('#failed').show();
}
else {
location.href = "admin/"
}
}
});
Run Code Online (Sandbox Code Playgroud)
signin.asp检查数据库的用户详细信息,如果确定,则此页面将用户名存储在会话变量中.
Session("userid") = Request("username")
Run Code Online (Sandbox Code Playgroud)
用户现在已登录.
当用户使用系统时,每个页面都检查每个AJAX请求上的REQUIRES_AUTH标头,并按如下方式处理注销重定向:
/* Check user logged in on every ajax request */
$('body').ajaxComplete(function(event,request,settings){
if (request.getResponseHeader('REQUIRES_AUTH') === '1'){
location.href="../signin.html"
};
});
/* End */
Run Code Online (Sandbox Code Playgroud)
使用AJAX帖子调用的每个ASP页面都会对会话进行检查,如果不存在则会设置REQUIRES_AUTH标头,如下所示:
If (trim(Session("userid")) = "") Then
'No session so clear variable
Session.Contents.Remove("userid")
'Redirect to Login page
Response.AddHeader "REQUIRES_AUTH", "1"
Else
Session("userid") = Session("userid")
End If
Run Code Online (Sandbox Code Playgroud)
我假设使用Session("userid")= Session("userid")以及我正在调用一个在服务器上执行某些操作的ASP页面的事实就足以维持会话但看起来并不是,所有建议非常感激.我有什么根本错的吗?
不幸的是,经典的 asp 会话中没有滑动过期时间。我可以找出两个建议:
Session.Timeout
至大于 20 分钟。 归档时间: |
|
查看次数: |
2203 次 |
最近记录: |