0

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

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

类似地:当用户访问一个页面时,时间被存储。当他空闲 20 分钟并尝试操作时,他将被重定向到会话超时。他应该无法在单击后退按钮时查看上一页。

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

注意:我根据清除浏览器历史记录中的评论将其发布为新问题

        $.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. 清除浏览器历史记录
  2. 在 <a> 上动态添加 href
4

1 回答 1

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");
}
于 2012-11-08T09:52:23.657 回答