处理注销的更好方法

时间:2012-11-08 09:47:07

标签: javascript jquery

我有一个自定义注销页面。当用户单击注销时,到达此页面(并且注销状态保存在数据库中)。没有登录机制。如果用户尝试新窗口,则允许他查看该页面,并且注销状态将更改为已登录。

注销后,当用户点击后退按钮(从注销页面)时,不应允许用户查看上一页。

同样:当用户访问页面时,存储时间。当他闲置20分钟并尝试操作时,他将被重定向到会话超时。他不应该在后退按钮点击上查看上一页。

目前在每个页面中,我正在检查数据库状态,并在状态被注销时再次重定向到已注销的页面。但它会导致页面首先加载,然后在javascript中进行验证,然后重定向。有没有更好的方法来解决这个问题?

注意:我根据Clear browser history

中的评论将其发布为新问题
        $.ajax(
        {
            type: "POST",
            url: "LogOut.aspx/GetActiveIndicatorStatus",
            data: '{"empID": "' + empID + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: navigateBasedOnStatus

        }
        );


//Helper Function
function navigateBasedOnStatus(result) {


    if (result.hasOwnProperty("d")) {
        result = result.d
    }

    //alert($.trim(result));

    if ($.trim(result) == "LoggedOUT") {

        window.location.href("LogOut.aspx");
    }
    else 
    {
        contentHolderDiv.css("display", "block");
    }


}

参考:

  1. Clear browser history
  2. Dynamically add href on <a>

1 个答案:

答案 0 :(得分:2)

场景1:不要Ajax:

如果您在页面上,用户可能无法再次看到,

window.location.replace("LogOut.aspx/GetActiveIndicatorStatus?empID="+empID)
无论您返回什么内容,

都会替换您所在页面。

场景2:在结果中替换:

if ($.trim(result) == "LoggedOUT") {

    window.location.replace("LogOut.aspx");
}
else 
{
    contentHolderDiv.css("display", "block");
}